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

MagickBooleanType
DrawRoundLinecap(Image *image,DrawInfo *draw_info,PrimitiveInfo *primitive_info,
                ExceptionInfo *exception)

{
  bool bVar1;
  bool bVar2;
  int iVar3;
  PixelInfo *pPVar4;
  Image *image_00;
  PrimitiveType PVar5;
  MagickBooleanType MVar6;
  DrawInfo *draw_info_00;
  PixelInfo *pPVar7;
  int iVar8;
  double *pdVar9;
  uint uVar10;
  double *pdVar11;
  double *pdVar12;
  int iVar13;
  LineJoin LVar14;
  double *pdVar15;
  double *pdVar16;
  PrimitiveInfo *pPVar17;
  PrimitiveInfo *pPVar18;
  MagickBooleanType MVar19;
  PixelInfo *pPVar20;
  PixelInfo *pPVar21;
  int iVar22;
  LineCap LVar23;
  size_t sVar24;
  Image *pIVar25;
  int iVar26;
  int iVar27;
  double *pdVar28;
  PrimitiveInfo *pPVar29;
  int iVar30;
  PixelTrait PVar31;
  ColorspaceType CVar32;
  PrimitiveInfo *pPVar33;
  PrimitiveInfo *pPVar34;
  size_t sVar35;
  PrimitiveInfo *pPVar36;
  undefined4 uVar37;
  undefined4 uVar38;
  undefined4 uVar39;
  size_t sVar40;
  uint uVar41;
  uint uVar42;
  double *pdVar43;
  int iVar44;
  uint uVar45;
  int iVar46;
  undefined *puVar47;
  code *pcVar48;
  size_t sVar49;
  double dVar50;
  double dVar51;
  undefined8 uVar52;
  double dVar53;
  double dVar54;
  double dVar55;
  undefined8 uVar56;
  double dVar57;
  double dVar58;
  double dVar59;
  double dVar60;
  double dVar61;
  double dVar62;
  double dVar63;
  double dVar64;
  double dVar65;
  double dVar66;
  double dVar67;
  double dVar68;
  double dVar69;
  double dVar70;
  undefined8 uVar71;
  double dVar72;
  double dVar73;
  double dVar74;
  double dVar75;
  double dStack_2b8;
  double dStack_2b0;
  double dStack_2a8;
  double dStack_2a0;
  double dStack_288;
  double dStack_280;
  double dStack_278;
  double dStack_270;
  double dStack_260;
  double dStack_258;
  double dStack_250;
  double dStack_248;
  double dStack_240;
  double dStack_238;
  uint uStack_22c;
  MagickBooleanType MStack_1d0;
  int iStack_188;
  PrimitiveInfo *pPStack_e8;
  PrimitiveInfo linecap [5];
  
  puVar47 = PTR___stack_chk_guard_003a9230;
  pPStack_e8 = linecap;
  image_00 = *(Image **)PTR___stack_chk_guard_003a9230;
  pPVar18 = primitive_info;
  pPVar17 = pPStack_e8;
  pPVar36 = pPStack_e8;
  do {
    do {
      pPVar34 = pPVar17;
      pPVar29 = pPVar18;
      pPVar18 = (PrimitiveInfo *)&pPVar29->coordinates;
      uVar39 = *(undefined4 *)((int)&(pPVar29->point).x + 4);
      uVar38 = *(undefined4 *)&(pPVar29->point).y;
      uVar37 = *(undefined4 *)((int)&(pPVar29->point).y + 4);
      *(undefined4 *)&(pPVar34->point).x = *(undefined4 *)&(pPVar29->point).x;
      *(undefined4 *)((int)&(pPVar34->point).x + 4) = uVar39;
      *(undefined4 *)&(pPVar34->point).y = uVar38;
      *(undefined4 *)((int)&(pPVar34->point).y + 4) = uVar37;
      pPVar17 = (PrimitiveInfo *)&pPVar34->coordinates;
    } while (pPVar18 != (PrimitiveInfo *)&primitive_info->closed_subpath);
    pPVar36 = pPVar36 + 1;
    PVar5 = pPVar29->primitive;
    pPVar34->coordinates = *(size_t *)pPVar18;
    pPVar34->primitive = PVar5;
    pPVar18 = primitive_info;
    pPVar17 = pPVar36;
  } while (pPVar36 != linecap + 4);
  dVar50 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x47c8);
  linecap[4].primitive = UndefinedPrimitive;
  linecap[0].coordinates = 4;
  linecap[1].point.x = linecap[1].point.x + dVar50;
  linecap[2].point.x = linecap[2].point.x + dVar50;
  linecap[2].point.y = linecap[2].point.y + dVar50;
  linecap[3].point.y = linecap[3].point.y + dVar50;
  MVar6 = DrawPolygonPrimitive(image,draw_info,pPStack_e8,exception);
  if (image_00 == *(Image **)puVar47) {
    return MVar6;
  }
  puVar47 = PTR___stack_chk_fail_003a9064;
  (*(code *)PTR___stack_chk_fail_003a9064)();
  if (image_00->debug != MagickFalse) {
    (**(code **)(puVar47 + 0x3044d0))
              (0x80,*(int *)(puVar47 + 0x303bd8) + 0x38b0,*(int *)(puVar47 + 0x303bd8) + 0x45dc,
               0x168f,*(int *)(puVar47 + 0x303bd8) + 0x3dd8);
  }
  draw_info_00 = (DrawInfo *)(**(code **)(puVar47 + 0x3044ec))(0,draw_info);
  pPVar4 = &draw_info_00->fill;
  pPVar21 = &draw_info->stroke;
  do {
    pPVar20 = pPVar21;
    pPVar7 = pPVar4;
    pPVar21 = (PixelInfo *)&pPVar20->fuzz;
    CVar32 = pPVar20->colorspace;
    PVar31 = pPVar20->alpha_trait;
    uVar37 = *(undefined4 *)&pPVar20->field_0xc;
    pPVar7->storage_class = pPVar20->storage_class;
    pPVar7->colorspace = CVar32;
    pPVar7->alpha_trait = PVar31;
    *(undefined4 *)&pPVar7->field_0xc = uVar37;
    pPVar4 = (PixelInfo *)&pPVar7->fuzz;
  } while (pPVar21 != (PixelInfo *)&(draw_info->stroke).index);
  uVar37 = *(undefined4 *)((int)&pPVar20->fuzz + 4);
  pIVar25 = draw_info_00->fill_pattern;
  *(undefined4 *)&pPVar7->fuzz = *(undefined4 *)pPVar21;
  *(undefined4 *)((int)&pPVar7->fuzz + 4) = uVar37;
  if (pIVar25 != (Image *)0x0) {
    pIVar25 = (Image *)(**(code **)(puVar47 + 0x30423c))();
    draw_info_00->fill_pattern = pIVar25;
  }
  if (draw_info_00->stroke_pattern != (Image *)0x0) {
    pIVar25 = (Image *)(**(code **)(puVar47 + 0x304b20))
                                 (draw_info_00->stroke_pattern,0,0,1,exception);
    draw_info_00->fill_pattern = pIVar25;
  }
  PVar5 = pPStack_e8->primitive;
  *(undefined4 *)((int)&(draw_info_00->stroke).alpha + 4) = 0;
  *(undefined4 *)&(draw_info_00->stroke).alpha = 0;
  *(undefined4 *)((int)&draw_info_00->stroke_width + 4) = 0;
  *(undefined4 *)&draw_info_00->stroke_width = 0;
  draw_info_00->fill_rule = NonZeroRule;
  if (PVar5 != UndefinedPrimitive) {
    iVar8 = *(int *)(puVar47 + 0x303bd0);
    iVar26 = *(int *)(puVar47 + 0x303bd8);
    MStack_1d0 = MagickTrue;
    dVar50 = *(double *)(iVar8 + 0x13f8);
    iVar22 = *(int *)(puVar47 + 0x303bd0);
    dVar51 = *(double *)(iVar22 + 0x1410);
    uVar52 = *(undefined8 *)(iVar26 + 0x34a0);
LAB_000a4e98:
    sVar40 = pPStack_e8->coordinates;
    if (sVar40 == 1) {
      iVar44 = 0x28;
      goto LAB_000a6620;
    }
    pdVar9 = (double *)(**(code **)(puVar47 + 0x3047fc))(sVar40 + 2,0x28);
    if (pdVar9 != (double *)0x0) {
      iVar44 = sVar40 * 0x28;
      (**(code **)(puVar47 + 0x304648))(pdVar9,pPStack_e8,iVar44);
      pdVar11 = pdVar9 + sVar40 * 5;
      if ((ABS(pPStack_e8[sVar40 - 1].point.x - (pPStack_e8->point).x) < dVar50) &&
         (ABS(pPStack_e8[sVar40 - 1].point.y - (pPStack_e8->point).y) < dVar50)) {
        if (draw_info->linejoin - MiterJoin < 2) {
          pPVar18 = pPStack_e8 + 1;
          do {
            pdVar12 = pdVar11;
            pPVar17 = pPVar18;
            pPVar18 = (PrimitiveInfo *)&pPVar17->coordinates;
            sVar24 = *(size_t *)&(pPVar17->point).y;
            sVar49 = *(size_t *)((int)&(pPVar17->point).y + 4);
            sVar35 = *(size_t *)&(pPVar17->point).x;
            *(size_t *)((int)pdVar12 + 4) = *(size_t *)((int)&(pPVar17->point).x + 4);
            *(size_t *)(pdVar12 + 1) = sVar24;
            *(size_t *)pdVar12 = sVar35;
            *(size_t *)((int)pdVar12 + 0xc) = sVar49;
            pdVar11 = pdVar12 + 2;
          } while (pPVar18 != (PrimitiveInfo *)&pPStack_e8[1].closed_subpath);
          iVar44 = iVar44 + 0x28;
          sVar49 = *(size_t *)pPVar18;
          pdVar11 = pdVar9 + sVar40 * 5 + 5;
          *(PrimitiveType *)((int)pdVar12 + 0x14) = pPVar17->primitive;
          *(size_t *)(pdVar12 + 2) = sVar49;
          sVar40 = sVar40 + 1;
        }
        iStack_188 = 1;
        bVar2 = true;
        bVar1 = (int)sVar40 < 2;
        *(size_t *)((int)pdVar11 + 0x14) = 0;
        if (bVar1) goto LAB_000a6124;
LAB_000a4fe8:
        dVar72 = *(double *)(iVar8 + 0x13f8);
        dStack_260 = pdVar9[5] - *pdVar9;
        dStack_258 = pdVar9[6] - pdVar9[1];
        if ((dVar72 <= ABS(dStack_260)) || (dVar72 <= ABS(dStack_258))) {
          sVar49 = 1;
        }
        else {
          sVar49 = 1;
          pdVar11 = pdVar9 + 10;
          do {
            sVar49 = sVar49 + 1;
            if (sVar49 == sVar40) {
              LVar23 = draw_info->linecap;
              sVar49 = sVar40;
              goto joined_r0x000a50f8;
            }
            dStack_260 = *pdVar11 - *pdVar9;
            dStack_258 = pdVar11[1] - pdVar9[1];
          } while ((ABS(dStack_260) < dVar72) && (pdVar11 = pdVar11 + 5, ABS(dStack_258) < dVar72));
        }
LAB_000a5110:
        uVar10 = sVar40 * 2;
        pdVar11 = (double *)(**(code **)(puVar47 + 0x3047fc))(uVar10 + 0x618,0x10);
        pdVar12 = (double *)(**(code **)(puVar47 + 0x3047fc))(uVar10 + 0x618,0x10);
        if (pdVar11 == (double *)0x0) {
          if (pdVar12 != (double *)0x0) {
            (**(code **)(puVar47 + 0x3042b0))(pdVar12);
          }
LAB_000a6cbc:
          (**(code **)(puVar47 + 0x3042b0))(pdVar9);
          uVar37 = 0x1c93;
          goto LAB_000a5724;
        }
        if (pdVar12 == (double *)0x0) {
          (**(code **)(puVar47 + 0x3042b0))(pdVar11);
          goto LAB_000a6cbc;
        }
        if (ABS(dStack_260) < *(double *)(iVar8 + 0x13f8)) {
          dVar72 = 0.0;
          if (0.0 <= dStack_260) {
            iVar13 = *(int *)(puVar47 + 0x303bd8);
            if (dStack_258 < 0.0) goto LAB_000a56e8;
          }
          else {
            iVar13 = *(int *)(puVar47 + 0x303bd8);
            if (0.0 <= dStack_258) {
LAB_000a56e8:
              dVar63 = *(double *)(iVar13 + 0x47d0);
              goto LAB_000a51b0;
            }
          }
          dVar63 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);
        }
        else if (ABS(dStack_258) < *(double *)(iVar8 + 0x13f8)) {
          dVar63 = 0.0;
          if (0.0 <= dStack_258) {
            iVar13 = *(int *)(puVar47 + 0x303bd8);
            if (dStack_260 < 0.0) goto LAB_000a684c;
          }
          else {
            iVar13 = *(int *)(puVar47 + 0x303bd8);
            if (0.0 <= dStack_260) {
LAB_000a684c:
              dVar72 = *(double *)(iVar13 + 0x47d0);
              goto LAB_000a51b0;
            }
          }
          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);
        }
        else {
          dVar63 = dStack_258 / dStack_260;
          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a78) / dVar63;
        }
LAB_000a51b0:
        dVar53 = (double)(**(code **)(puVar47 + 0x304288))(&draw_info->affine);
        iVar13 = draw_info->miterlimit * draw_info->miterlimit;
        dVar53 = dVar53 * draw_info->stroke_width *
                 *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1400);
        dVar57 = (double)iVar13;
        if (iVar13 < 0) {
          dVar57 = dVar57 + *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1418);
        }
        dVar57 = dVar57 * dVar53 * dVar53;
        if (draw_info->linecap == SquareCap) {
          iVar13 = *(int *)(puVar47 + 0x303bd0);
          if (!bVar2) {
            if (bVar1) {
              dVar54 = 0.0;
              if (sVar40 == 1) {
                dVar64 = 0.0;
                sVar35 = 1;
LAB_000a6998:
                pdVar16 = pdVar9 + (sVar35 - 1) * 5;
              }
              else {
                pdVar16 = pdVar9 + 5;
                dVar64 = 0.0;
              }
            }
            else {
              dVar75 = *(double *)(iVar8 + 0x13f8);
              dVar64 = *pdVar9 - pdVar9[5];
              dVar54 = pdVar9[1] - pdVar9[6];
              if ((dVar75 <= ABS(dVar64)) || (dVar75 <= ABS(dVar54))) {
                pdVar16 = pdVar9 + 5;
              }
              else {
                sVar24 = 1;
                pdVar28 = pdVar9 + 10;
                do {
                  pdVar16 = pdVar28;
                  sVar24 = sVar24 + 1;
                  sVar35 = sVar40;
                  if (sVar24 == sVar40) goto LAB_000a6998;
                  dVar64 = *pdVar9 - *pdVar16;
                  dVar54 = pdVar9[1] - pdVar16[1];
                } while ((ABS(dVar64) < dVar75) && (pdVar28 = pdVar16 + 5, ABS(dVar54) < dVar75));
              }
            }
            dVar75 = (double)(**(code **)(puVar47 + 0x304a08))(dVar64,dVar54);
            iVar13 = sVar40 - 2;
            dVar61 = pdVar16[1];
            pdVar43 = (double *)((int)pdVar9 + iVar44 + -0x28);
            pdVar28 = pdVar9 + iVar13 * 5;
            *pdVar9 = *pdVar16 + (dVar64 * (dVar53 + dVar75)) / dVar75;
            pdVar9[1] = dVar61 + (dVar54 * (dVar53 + dVar75)) / dVar75;
            if (-1 < iVar13) {
              dVar75 = *(double *)(iVar8 + 0x13f8);
              dVar64 = *pdVar43 - *pdVar28;
              dVar54 = pdVar43[1] - pdVar28[1];
              if (ABS(dVar64) < dVar75) {
                pdVar16 = pdVar9 + (sVar40 - 3) * 5;
                do {
                  pdVar28 = pdVar16;
                  if (dVar75 <= ABS(dVar54)) {
                    pdVar28 = pdVar9 + iVar13 * 5;
                    break;
                  }
                  iVar13 = iVar13 + -1;
                  if (iVar13 == -1) break;
                  dVar64 = *pdVar43 - *pdVar28;
                  dVar54 = pdVar43[1] - pdVar28[1];
                  pdVar16 = pdVar28 + -5;
                } while (ABS(dVar64) < dVar75);
              }
            }
            dVar75 = (double)(**(code **)(puVar47 + 0x304a08))(dVar64,dVar54);
            dVar61 = pdVar28[1];
            *pdVar43 = *pdVar28 + (dVar64 * (dVar53 + dVar75)) / dVar75;
            pdVar43[1] = dVar61 + (dVar54 * (dVar53 + dVar75)) / dVar75;
            goto LAB_000a5220;
          }
        }
        else {
LAB_000a5220:
          iVar13 = *(int *)(puVar47 + 0x303bd0);
        }
        dVar54 = dVar53 * dVar53;
        dVar64 = dVar54 / (dVar72 * dVar72 + *(double *)(iVar13 + 0x1438));
        dVar75 = SQRT(dVar64);
        if (dVar64 < 0.0) {
          (**(code **)(puVar47 + 0x304770))();
        }
        dVar72 = dVar72 * dVar75;
        pdVar16 = pdVar9 + sVar49 * 5;
        dVar69 = *pdVar16;
        dVar73 = pdVar16[1];
        dVar68 = dVar72 + pdVar9[1];
        dVar66 = pdVar9[1] - dVar72;
        dVar64 = dVar75 + *pdVar9;
        dStack_238 = dVar73 - dVar72;
        dStack_240 = dVar69 - dVar75;
        dVar67 = *pdVar9 - dVar75;
        dVar62 = dVar67;
        dVar61 = dVar68;
        dStack_250 = dVar75 + dVar69;
        dStack_248 = dVar72 + dVar73;
        if (0.0 < dVar75 * dStack_258 - dVar72 * dStack_260) {
          dVar62 = dVar64;
          dVar61 = dVar66;
          dVar64 = dVar67;
          dVar66 = dVar68;
          dStack_250 = dStack_240;
          dStack_248 = dStack_238;
          dStack_240 = dVar75 + dVar69;
          dStack_238 = dVar72 + dVar73;
        }
        sVar35 = sVar49 + 1;
        *pdVar12 = dVar62;
        pdVar12[1] = dVar66;
        *pdVar11 = dVar64;
        pdVar11[1] = dVar61;
        if ((int)sVar35 < (int)sVar40) {
          iVar27 = *(int *)(puVar47 + 0x303bd8);
          iVar44 = 1;
          iVar46 = 1;
          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a78);
          dVar75 = *(double *)(*(int *)(puVar47 + 0x303bd8) + 0x47d8);
          uStack_22c = uVar10;
          do {
            dVar55 = pdVar16[6];
            dVar58 = pdVar16[5];
            dVar59 = dVar55 - dVar73;
            dVar65 = dVar58 - dVar69;
            dVar60 = dVar58 - dVar69;
            dVar67 = dStack_238;
            dVar68 = dStack_240;
            dVar70 = dStack_248;
            dVar74 = dStack_250;
            if (*(double *)(iVar27 + -0x2e38) <=
                dVar65 * dVar65 + (dVar55 - dVar73) * (dVar55 - dVar73)) {
              if (ABS(dVar65) < *(double *)(iVar8 + 0x13f8)) {
                dVar67 = 0.0;
                dVar68 = dVar54;
                if (0.0 <= dVar65) {
                  if (0.0 <= dVar55 - dVar73) goto LAB_000a53e0;
                }
                else if (dVar55 - dVar73 < 0.0) {
LAB_000a53e0:
                  dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);
                  goto joined_r0x000a568c;
                }
                dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd8) + 0x47d0);
              }
              else if (ABS(dVar59) < *(double *)(iVar8 + 0x13f8)) {
                dVar65 = 0.0;
                dVar68 = dVar54 / dVar75;
                if (0.0 <= dVar55 - dVar73) {
                  iVar30 = *(int *)(puVar47 + 0x303bd8);
                  if (dVar58 - dVar69 < 0.0) goto LAB_000a5880;
                }
                else {
                  iVar30 = *(int *)(puVar47 + 0x303bd8);
                  if (0.0 <= dVar58 - dVar69) {
LAB_000a5880:
                    dVar67 = *(double *)(iVar30 + 0x47d0);
                    goto joined_r0x000a568c;
                  }
                }
                dVar67 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);
              }
              else {
                dVar65 = (dVar55 - dVar73) / (dVar58 - dVar69);
                dVar67 = dVar72 / dVar65;
                dVar68 = dVar54 / (dVar67 * dVar67 + *(double *)(iVar13 + 0x1438));
              }
joined_r0x000a568c:
              pdVar28 = pdVar9 + sVar49 * 5;
              dVar70 = SQRT(dVar68);
              if (dVar68 < 0.0) {
                (**(code **)(puVar47 + 0x304770))();
                dVar69 = *pdVar28;
                dVar73 = pdVar28[1];
                dVar58 = pdVar16[5];
                dVar55 = pdVar16[6];
              }
              dVar67 = dVar67 * dVar70;
              dStack_2a8 = dVar58 - dVar70;
              dStack_2a0 = dVar55 - dVar67;
              dStack_278 = dVar69 - dVar70;
              dStack_270 = dVar73 - dVar67;
              dStack_2b8 = dVar70 + dVar58;
              dStack_2b0 = dVar67 + dVar55;
              dStack_288 = dVar70 + dVar69;
              dStack_280 = dVar67 + dVar73;
              if (0.0 < dVar59 * dVar70 - dVar60 * dVar67) {
                dStack_2b8 = dStack_2a8;
                dStack_2b0 = dStack_2a0;
                dStack_2a8 = dVar70 + dVar58;
                dStack_2a0 = dVar67 + dVar55;
                dStack_288 = dStack_278;
                dStack_280 = dStack_270;
                dStack_278 = dVar70 + dVar69;
                dStack_270 = dVar67 + dVar73;
              }
              dVar67 = dVar63 - dVar65;
              dVar69 = dStack_250;
              dVar73 = dStack_248;
              dVar55 = dStack_238;
              dVar58 = dStack_240;
              if (*(double *)(iVar8 + 0x13f8) <= ABS(dVar67)) {
                dVar69 = (((dVar64 * dVar63 - dVar61) - dVar65 * dStack_2b8) + dStack_2b0) / dVar67;
                dVar58 = (((dVar63 * dVar62 - dVar66) - dVar65 * dStack_2a8) + dStack_2a0) / dVar67;
                dVar73 = (dVar69 - dVar64) * dVar63 + dVar61;
                dVar55 = (dVar58 - dVar62) * dVar63 + dVar66;
              }
              if ((int)uStack_22c <= iVar46 + 0x618) {
                if (uStack_22c < 0xfffff9e8) {
                  pdVar11 = (double *)
                            (**(code **)(puVar47 + 0x304710))(pdVar11,uStack_22c + 0xc30,0x10);
                  uStack_22c = uStack_22c + 0x618;
                }
                else {
                  pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);
                }
              }
              if (iVar44 + 0x618 < (int)uVar10) {
                if (pdVar11 == (double *)0x0) {
LAB_000a5700:
                  (**(code **)(puVar47 + 0x3042b0))(pdVar12);
LAB_000a5710:
                  pcVar48 = *(code **)(puVar47 + 0x3042b0);
                  goto LAB_000a5714;
                }
              }
              else {
                if (0xfffff9e7 < uVar10) {
                  pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);
                  if (pdVar11 != (double *)0x0) goto LAB_000a5594;
LAB_000a598c:
                  if (pdVar12 != (double *)0x0) goto LAB_000a5700;
                  pcVar48 = *(code **)(puVar47 + 0x3042b0);
LAB_000a5714:
                  (*pcVar48)(pdVar9);
                  uVar37 = 0x1d17;
                  goto LAB_000a5724;
                }
                pdVar12 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);
                uVar10 = uVar10 + 0x618;
                if (pdVar11 == (double *)0x0) goto LAB_000a598c;
LAB_000a5594:
                if (pdVar12 == (double *)0x0) {
                  (**(code **)(puVar47 + 0x3042b0))(pdVar11);
                  goto LAB_000a5710;
                }
              }
              LVar14 = draw_info->linejoin;
              dVar62 = dStack_278;
              dVar61 = dStack_280;
              dVar64 = dStack_288;
              dVar66 = dStack_270;
              sVar49 = sVar35;
              dVar63 = dVar65;
              if (dVar60 * dStack_258 - dVar59 * dStack_260 <= 0.0) {
                if (LVar14 != RoundJoin) {
                  if (LVar14 == BevelJoin) {
                    pdVar28 = pdVar11 + iVar46 * 2;
                    pdVar12[iVar44 * 2] = dStack_240;
                    (pdVar12 + iVar44 * 2)[1] = dStack_238;
                    pdVar12[iVar44 * 2 + 2] = dStack_278;
                    (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;
                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +
                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {
                      *pdVar28 = dVar69;
                      pdVar28[1] = dVar73;
                      dStack_258 = dVar59;
                      dStack_260 = dVar60;
                      dVar67 = dStack_2a0;
                      dVar68 = dStack_2a8;
                      dVar70 = dStack_2b0;
                      dVar74 = dStack_2b8;
                      iVar44 = iVar44 + 2;
                      iVar46 = iVar46 + 1;
                    }
                    else {
                      *pdVar28 = dStack_250;
                      pdVar28[1] = dStack_248;
                      pdVar11[iVar46 * 2 + 2] = dStack_288;
                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;
                      dStack_258 = dVar59;
                      dStack_260 = dVar60;
                      dVar67 = dStack_2a0;
                      dVar68 = dStack_2a8;
                      dVar70 = dStack_2b0;
                      dVar74 = dStack_2b8;
                      iVar44 = iVar44 + 2;
                      iVar46 = iVar46 + 2;
                    }
                  }
                  else {
                    dStack_258 = dVar59;
                    dStack_260 = dVar60;
                    dVar67 = dStack_2a0;
                    dVar68 = dStack_2a8;
                    dVar70 = dStack_2b0;
                    dVar74 = dStack_2b8;
                    if (LVar14 == MiterJoin) {
                      pdVar28 = pdVar11 + iVar46 * 2;
                      pdVar43 = pdVar12 + iVar44 * 2;
                      if (dVar57 < (dVar58 - dVar69) * (dVar58 - dVar69) +
                                   (dVar55 - dVar73) * (dVar55 - dVar73)) goto LAB_000a607c;
LAB_000a58dc:
                      iVar44 = iVar44 + 1;
                      iVar46 = iVar46 + 1;
                      *pdVar43 = dVar58;
                      pdVar43[1] = dVar55;
                      *pdVar28 = dVar69;
                      pdVar28[1] = dVar73;
                      dStack_258 = dVar59;
                      dStack_260 = dVar60;
                      dVar67 = dStack_2a0;
                      dVar68 = dStack_2a8;
                      dVar70 = dStack_2b0;
                      dVar74 = dStack_2b8;
                    }
                  }
                  goto joined_r0x000a5a50;
                }
                iVar30 = iVar46 + 1;
                pdVar43 = pdVar11 + iVar46 * 2;
                if ((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=
                    dVar57) {
                  *pdVar43 = dVar69;
                  pdVar43[1] = dVar73;
                }
                else {
                  iVar30 = iVar46 + 2;
                  *pdVar43 = dStack_250;
                  pdVar43[1] = dStack_248;
                  pdVar11[iVar46 * 2 + 2] = dStack_288;
                  (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;
                }
                dVar69 = *pdVar28;
                dVar68 = pdVar28[1];
                dVar63 = dVar68;
                dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))
                                           (dStack_238 - dVar68,dStack_240 - dVar69);
                dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))
                                           (dStack_270 - dVar63,dStack_278 - dVar69);
                if (dVar63 < dVar67) {
                  dVar63 = dVar63 + *(double *)(iVar26 + 0x34a0);
                }
                dVar63 = dVar63 - dVar67;
                dVar73 = *(double *)(iVar13 + 0x1438) / dVar53;
                dVar70 = SQRT(dVar73);
                if (dVar73 < 0.0) {
                  (**(code **)(puVar47 + 0x304770))();
                }
                dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar63 / (dVar70 + dVar70));
                dVar70 = *(double *)(iVar22 + 0x1410);
                if (dVar73 < dVar70) {
                  uVar42 = (uint)dVar73;
                }
                else {
                  uVar42 = (int)(dVar73 - dVar70) | 0x80000000;
                }
                if ((int)uStack_22c <= iVar30 + 0x618) {
                  if (uStack_22c < 0xfffff9e8) {
                    iVar46 = uStack_22c + 0xc30;
                    uStack_22c = uStack_22c + 0x618;
                    pdVar11 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar11,iVar46,0x10);
                  }
                  else {
                    pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);
                  }
                }
                if (uVar42 + 0x618 < 0x4000001) {
                  if ((int)uVar10 <= (int)(iVar44 + 0x618 + uVar42)) {
                    pcVar48 = *(code **)(puVar47 + 0x3042b0);
                    if (~uVar10 < uVar42 + 0x618) goto LAB_000a67d4;
                    iVar46 = uVar42 + uVar10;
                    uVar10 = iVar46 + 0x618;
                    pdVar12 = (double *)
                              (**(code **)(puVar47 + 0x304710))(pdVar12,iVar46 + 0xc30,0x10);
                    goto LAB_000a64c4;
                  }
                  if (pdVar11 == (double *)0x0) {
LAB_000a6884:
                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);
LAB_000a6d2c:
                    pcVar48 = *(code **)(puVar47 + 0x3042b0);
                    goto LAB_000a6d30;
                  }
                }
                else {
                  pcVar48 = *(code **)(puVar47 + 0x3042b0);
LAB_000a67d4:
                  pdVar12 = (double *)(*pcVar48)(pdVar12);
LAB_000a64c4:
                  if (pdVar11 == (double *)0x0) {
                    if (pdVar12 != (double *)0x0) goto LAB_000a6884;
                    pcVar48 = *(code **)(puVar47 + 0x3042b0);
LAB_000a6d30:
                    (*pcVar48)(pdVar9);
                    uVar37 = 0x1d4f;
                    goto LAB_000a5724;
                  }
                  if (pdVar12 == (double *)0x0) {
                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);
                    goto LAB_000a6d2c;
                  }
                }
                pdVar28 = pdVar12 + iVar44 * 2;
                *pdVar28 = dStack_240;
                pdVar28[1] = dStack_238;
                if (1 < (int)uVar42) {
                  uVar71 = *(undefined8 *)(iVar26 + 0x34a0);
                  uVar41 = 1;
                  do {
                    uVar45 = uVar41 + 1;
                    dVar70 = ((double)(int)uVar41 * dVar63) / (double)(int)uVar42 + dVar67;
                    uVar56 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar71);
                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar56);
                    pcVar48 = *(code **)(puVar47 + 0x304ca8);
                    pdVar28[2] = dVar53 * dVar73 + dVar69;
                    uVar56 = (*pcVar48)(dVar70,uVar71);
                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar56);
                    pdVar28[3] = dVar53 * dVar73 + dVar68;
                    uVar41 = uVar45;
                    pdVar28 = pdVar28 + 2;
                  } while (uVar45 != uVar42);
                }
                *pdVar12 = dStack_278;
                pdVar12[1] = dStack_270;
                dStack_258 = dVar59;
                dStack_260 = dVar60;
                dVar67 = dStack_2a0;
                dVar68 = dStack_2a8;
                dVar70 = dStack_2b0;
                dVar74 = dStack_2b8;
                iVar44 = 1;
                iVar46 = iVar30;
                dVar63 = dVar65;
              }
              else {
                if (LVar14 != RoundJoin) {
                  if (LVar14 == BevelJoin) {
                    iVar30 = iVar46 * 2;
                    iVar3 = iVar46 * 2;
                    iVar46 = iVar46 + 2;
                    pdVar11[iVar30] = dStack_250;
                    (pdVar11 + iVar30)[1] = dStack_248;
                    pdVar28 = pdVar12 + iVar44 * 2;
                    pdVar11[iVar3 + 2] = dStack_288;
                    (pdVar11 + iVar3 + 2)[1] = dStack_280;
                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +
                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {
                      *pdVar28 = dVar58;
                      pdVar28[1] = dVar55;
                      dStack_258 = dVar59;
                      dStack_260 = dVar60;
                      dVar67 = dStack_2a0;
                      dVar68 = dStack_2a8;
                      dVar70 = dStack_2b0;
                      dVar74 = dStack_2b8;
                      iVar44 = iVar44 + 1;
                    }
                    else {
                      *pdVar28 = dStack_240;
                      pdVar28[1] = dStack_238;
                      pdVar12[iVar44 * 2 + 2] = dStack_278;
                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;
                      dStack_258 = dVar59;
                      dStack_260 = dVar60;
                      dVar67 = dStack_2a0;
                      dVar68 = dStack_2a8;
                      dVar70 = dStack_2b0;
                      dVar74 = dStack_2b8;
                      iVar44 = iVar44 + 2;
                    }
                  }
                  else {
                    dStack_258 = dVar59;
                    dStack_260 = dVar60;
                    dVar67 = dStack_2a0;
                    dVar68 = dStack_2a8;
                    dVar70 = dStack_2b0;
                    dVar74 = dStack_2b8;
                    if (LVar14 == MiterJoin) {
                      pdVar28 = pdVar11 + iVar46 * 2;
                      pdVar43 = pdVar12 + iVar44 * 2;
                      if ((dVar58 - dVar69) * (dVar58 - dVar69) +
                          (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) goto LAB_000a58dc;
LAB_000a607c:
                      *pdVar43 = dStack_240;
                      pdVar43[1] = dStack_238;
                      pdVar12[iVar44 * 2 + 2] = dStack_278;
                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;
                      *pdVar28 = dStack_250;
                      pdVar28[1] = dStack_248;
                      pdVar11[iVar46 * 2 + 2] = dStack_288;
                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;
                      dStack_258 = dVar59;
                      dStack_260 = dVar60;
                      dVar67 = dStack_2a0;
                      dVar68 = dStack_2a8;
                      dVar70 = dStack_2b0;
                      dVar74 = dStack_2b8;
                      iVar44 = iVar44 + 2;
                      iVar46 = iVar46 + 2;
                    }
                  }
                  goto joined_r0x000a5a50;
                }
                iVar30 = iVar44 + 1;
                pdVar43 = pdVar12 + iVar44 * 2;
                if ((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=
                    dVar57) {
                  *pdVar43 = dVar58;
                  pdVar43[1] = dVar55;
                }
                else {
                  iVar30 = iVar44 + 2;
                  *pdVar43 = dStack_240;
                  pdVar43[1] = dStack_238;
                  pdVar12[iVar44 * 2 + 2] = dStack_278;
                  (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;
                }
                dVar68 = *pdVar28;
                dVar69 = pdVar28[1];
                dVar63 = dVar68;
                dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))
                                           (dStack_248 - dVar69,dStack_250 - dVar68);
                dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))
                                           (dStack_280 - dVar69,dStack_288 - dVar63);
                if (dVar67 < dVar63) {
                  dVar67 = dVar67 + *(double *)(iVar26 + 0x34a0);
                }
                dVar73 = dVar67 - dVar63;
                dVar70 = *(double *)(iVar13 + 0x1438) / dVar53;
                dVar74 = SQRT(dVar70);
                if (dVar70 < 0.0) {
                  (**(code **)(puVar47 + 0x304770))();
                }
                dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar73 / (dVar74 + dVar74));
                if (dVar73 < dVar51) {
                  uVar41 = (uint)dVar73;
                  uVar42 = uVar41 + 0x618;
                  pcVar48 = *(code **)(puVar47 + 0x3042b0);
                  if (uVar42 < 0x4000001) goto LAB_000a5ec0;
LAB_000a66a4:
                  pdVar11 = (double *)(*pcVar48)(pdVar11);
                }
                else {
                  uVar41 = (int)(dVar73 - dVar51) | 0x80000000;
                  uVar42 = uVar41 + 0x618;
                  if (0x4000000 < uVar42) {
                    pcVar48 = *(code **)(puVar47 + 0x3042b0);
                    goto LAB_000a66a4;
                  }
LAB_000a5ec0:
                  if ((int)uStack_22c <= (int)(iVar46 + 0x618 + uVar41)) {
                    pcVar48 = *(code **)(puVar47 + 0x3042b0);
                    if (~uStack_22c < uVar42) goto LAB_000a66a4;
                    iVar44 = uStack_22c + uVar41;
                    uStack_22c = iVar44 + 0x618;
                    pdVar11 = (double *)
                              (**(code **)(puVar47 + 0x304710))(pdVar11,iVar44 + 0xc30,0x10);
                  }
                }
                if (iVar30 + 0x618 < (int)uVar10) {
                  if (pdVar11 == (double *)0x0) {
LAB_000a664c:
                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);
LAB_000a665c:
                    pcVar48 = *(code **)(puVar47 + 0x3042b0);
                    goto LAB_000a6660;
                  }
                }
                else {
                  if (uVar10 < 0xfffff9e8) {
                    pdVar12 = (double *)
                              (**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);
                    uVar10 = uVar10 + 0x618;
                  }
                  else {
                    pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);
                  }
                  if (pdVar11 == (double *)0x0) {
                    if (pdVar12 != (double *)0x0) goto LAB_000a664c;
                    pcVar48 = *(code **)(puVar47 + 0x3042b0);
LAB_000a6660:
                    (*pcVar48)(pdVar9);
                    uVar37 = 0x1d98;
                    goto LAB_000a5724;
                  }
                  if (pdVar12 == (double *)0x0) {
                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);
                    goto LAB_000a665c;
                  }
                }
                pdVar28 = pdVar11 + iVar46 * 2;
                *pdVar28 = dStack_250;
                pdVar28[1] = dStack_248;
                if (1 < (int)uVar41) {
                  dVar63 = dVar63 - dVar67;
                  uVar42 = 1;
                  do {
                    uVar45 = uVar42 + 1;
                    dVar70 = ((double)(int)uVar42 * dVar63) / (double)(int)uVar41 + dVar67;
                    uVar71 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar52);
                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar71);
                    pcVar48 = *(code **)(puVar47 + 0x304ca8);
                    pdVar28[2] = dVar53 * dVar73 + dVar68;
                    uVar71 = (*pcVar48)(dVar70,uVar52);
                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar71);
                    pdVar28[3] = dVar53 * dVar73 + dVar69;
                    uVar42 = uVar45;
                    pdVar28 = pdVar28 + 2;
                  } while (uVar45 != uVar41);
                }
                *pdVar11 = dStack_288;
                pdVar11[1] = dStack_280;
                dStack_258 = dVar59;
                dStack_260 = dVar60;
                dVar67 = dStack_2a0;
                dVar68 = dStack_2a8;
                dVar70 = dStack_2b0;
                dVar74 = dStack_2b8;
                iVar44 = iVar30;
                iVar46 = 1;
                dVar63 = dVar65;
              }
            }
joined_r0x000a5a50:
            dStack_250 = dVar74;
            dStack_248 = dVar70;
            dStack_240 = dVar68;
            dStack_238 = dVar67;
            if (sVar35 + 1 == sVar40) goto LAB_000a5a58;
            pdVar16 = pdVar16 + 5;
            sVar35 = sVar35 + 1;
            dVar69 = pdVar9[sVar49 * 5];
            dVar73 = (pdVar9 + sVar49 * 5)[1];
          } while( true );
        }
        iVar44 = 4;
        iVar27 = 0x10;
        iVar46 = 0x10;
        iVar13 = 2;
        goto LAB_000a5a70;
      }
      bVar1 = (int)sVar40 < 2;
      iStack_188 = 0;
      bVar2 = false;
      *(size_t *)((int)pdVar11 + 0x14) = 0;
      if (!bVar1) goto LAB_000a4fe8;
LAB_000a6124:
      if (sVar40 != 1) {
        sVar49 = 1;
        dStack_258 = 0.0;
        dStack_260 = 0.0;
        goto LAB_000a5110;
      }
      sVar49 = 1;
      dStack_258 = 0.0;
      LVar23 = draw_info->linecap;
      dStack_260 = 0.0;
joined_r0x000a50f8:
      if (LVar23 == RoundCap) {
        pcVar48 = *(code **)(puVar47 + 0x304644);
        if (!bVar2) {
          sVar49 = sVar49 - 1;
          goto LAB_000a5110;
        }
      }
      else {
        pcVar48 = *(code **)(puVar47 + 0x304644);
      }
      pPVar18 = (PrimitiveInfo *)(*pcVar48)(0x28);
      pdVar11 = pdVar9;
      pPVar17 = pPVar18;
      do {
        pPVar36 = pPVar17;
        pdVar12 = pdVar11;
        pdVar11 = pdVar12 + 2;
        sVar35 = *(size_t *)((int)pdVar12 + 4);
        sVar49 = *(size_t *)(pdVar12 + 1);
        sVar40 = *(size_t *)((int)pdVar12 + 0xc);
        *(size_t *)&(pPVar36->point).x = *(size_t *)pdVar12;
        *(size_t *)((int)&(pPVar36->point).x + 4) = sVar35;
        *(size_t *)&(pPVar36->point).y = sVar49;
        *(size_t *)((int)&(pPVar36->point).y + 4) = sVar40;
        pPVar17 = (PrimitiveInfo *)&pPVar36->coordinates;
      } while (pdVar11 != pdVar9 + 4);
      PVar5 = *(PrimitiveType *)((int)pdVar12 + 0x14);
      pcVar48 = *(code **)(puVar47 + 0x3042b0);
      pPVar36->coordinates = *(size_t *)pdVar11;
      pPVar36->primitive = PVar5;
      pPVar18->coordinates = 0;
      (*pcVar48)(pdVar9);
      goto LAB_000a61cc;
    }
    uVar37 = 0x1c57;
LAB_000a5724:
    (**(code **)(puVar47 + 0x304210))
              (exception,*(int *)(puVar47 + 0x303bd8) + 0x38b0,*(int *)(puVar47 + 0x303bd8) + 0x45c8
               ,uVar37,400,*(int *)(puVar47 + 0x303bd0) + 0x16f8,
               *(int *)(puVar47 + 0x303bd0) + 0x3e28,*(int *)(puVar47 + 0x303bd4) + -0x3688);
    MStack_1d0 = MagickFalse;
    goto LAB_000a5774;
  }
  MStack_1d0 = MagickTrue;
LAB_000a5774:
  pcVar48 = *(code **)(puVar47 + 0x3042d8);
LAB_000a5778:
  (*pcVar48)(draw_info_00);
  if (image_00->debug != MagickFalse) {
    (**(code **)(puVar47 + 0x3044d0))
              (0x80,*(int *)(puVar47 + 0x303bd8) + 0x38b0,*(int *)(puVar47 + 0x303bd8) + 0x45dc,
               0x16b4,*(int *)(puVar47 + 0x303bd8) + 0x3df8);
  }
  return MStack_1d0;
LAB_000a5a58:
  iVar13 = iVar46 + 1;
  iVar46 = iVar46 << 4;
  iVar27 = iVar44 << 4;
  iVar44 = iVar44 + 1 + iVar13;
LAB_000a5a70:
  pcVar48 = *(code **)(puVar47 + 0x3047fc);
  iVar44 = iStack_188 * 2 + iVar44;
  *(double *)((int)pdVar11 + iVar46) = dStack_250;
  ((double *)((int)pdVar11 + iVar46))[1] = dStack_248;
  *(double *)((int)pdVar12 + iVar27) = dStack_240;
  ((double *)((int)pdVar12 + iVar27))[1] = dStack_238;
  pPVar18 = (PrimitiveInfo *)(*pcVar48)(iVar44 + 2,0x28);
  if (pPVar18 == (PrimitiveInfo *)0x0) {
    (**(code **)(puVar47 + 0x304210))
              (exception,*(int *)(puVar47 + 0x303bd8) + 0x38b0,*(int *)(puVar47 + 0x303bd8) + 0x45c8
               ,0x1dbc,400,*(int *)(puVar47 + 0x303bd0) + 0x16f8,
               *(int *)(puVar47 + 0x303bd0) + 0x3e28,*(int *)(puVar47 + 0x303bd4) + -0x3688);
    (**(code **)(puVar47 + 0x3042b0))(pdVar11);
    (**(code **)(puVar47 + 0x3042b0))(pdVar12);
    (**(code **)(puVar47 + 0x3042b0))(pdVar9);
    MStack_1d0 = MagickFalse;
    goto LAB_000a5774;
  }
  pdVar43 = pdVar9 + 4;
  pdVar16 = pdVar9;
  pPVar17 = pPVar18;
  pdVar28 = pdVar11;
  pPVar36 = pPVar18;
  do {
    do {
      pPVar29 = pPVar17;
      pdVar15 = pdVar16 + 2;
      sVar35 = *(size_t *)((int)pdVar16 + 4);
      sVar49 = *(size_t *)(pdVar16 + 1);
      sVar40 = *(size_t *)((int)pdVar16 + 0xc);
      *(size_t *)&(pPVar29->point).x = *(size_t *)pdVar16;
      *(size_t *)((int)&(pPVar29->point).x + 4) = sVar35;
      *(size_t *)&(pPVar29->point).y = sVar49;
      *(size_t *)((int)&(pPVar29->point).y + 4) = sVar40;
      pdVar16 = pdVar15;
      pPVar17 = (PrimitiveInfo *)&pPVar29->coordinates;
    } while (pdVar15 != pdVar43);
    pdVar15 = pdVar28 + 2;
    PVar5 = *(PrimitiveType *)((int)pdVar9 + 0x24);
    pPVar29->coordinates = *(size_t *)pdVar43;
    pPVar29->primitive = PVar5;
    uVar39 = *(undefined4 *)((int)pdVar28 + 4);
    uVar38 = *(undefined4 *)(pdVar28 + 1);
    uVar37 = *(undefined4 *)((int)pdVar28 + 0xc);
    *(undefined4 *)&(pPVar36->point).x = *(undefined4 *)pdVar28;
    *(undefined4 *)((int)&(pPVar36->point).x + 4) = uVar39;
    *(undefined4 *)&(pPVar36->point).y = uVar38;
    *(undefined4 *)((int)&(pPVar36->point).y + 4) = uVar37;
    pdVar16 = pdVar9;
    pPVar17 = pPVar36 + 1;
    pdVar28 = pdVar15;
    pPVar36 = pPVar36 + 1;
  } while (pdVar11 + iVar13 * 2 != pdVar15);
  pPVar36 = pPVar18 + iVar13;
  pPVar17 = pPVar36;
  if (bVar2) {
    do {
      pPVar29 = pPVar17;
      pdVar28 = pdVar16 + 2;
      sVar35 = *(size_t *)((int)pdVar16 + 4);
      sVar49 = *(size_t *)(pdVar16 + 1);
      sVar40 = *(size_t *)((int)pdVar16 + 0xc);
      *(size_t *)&(pPVar29->point).x = *(size_t *)pdVar16;
      *(size_t *)((int)&(pPVar29->point).x + 4) = sVar35;
      *(size_t *)&(pPVar29->point).y = sVar49;
      *(size_t *)((int)&(pPVar29->point).y + 4) = sVar40;
      pdVar16 = pdVar28;
      pPVar17 = (PrimitiveInfo *)&pPVar29->coordinates;
    } while (pdVar28 != pdVar43);
    iVar13 = iVar13 + 1;
    PVar5 = *(PrimitiveType *)((int)pdVar9 + 0x24);
    pPVar29->coordinates = *(size_t *)(pdVar9 + 4);
    pPVar29->primitive = PVar5;
    uVar39 = *(undefined4 *)((int)&(pPVar18->point).x + 4);
    uVar38 = *(undefined4 *)&(pPVar18->point).y;
    uVar37 = *(undefined4 *)((int)&(pPVar18->point).y + 4);
    pPVar17 = pPVar18 + iVar13;
    *(undefined4 *)&(pPVar36->point).x = *(undefined4 *)&(pPVar18->point).x;
    *(undefined4 *)((int)&(pPVar36->point).x + 4) = uVar39;
    *(undefined4 *)&(pPVar36->point).y = uVar38;
    *(undefined4 *)((int)&(pPVar36->point).y + 4) = uVar37;
  }
  iStack_188 = iVar44 - iStack_188;
  if (iVar13 < iStack_188) {
    pdVar16 = pdVar9;
    pPVar17 = pPVar18 + iVar13;
    pdVar28 = pdVar12 + ((iStack_188 + 0xfffffff) - iVar13) * 2;
    pPVar29 = pPVar18 + iVar13;
    do {
      do {
        pPVar34 = pPVar17;
        pdVar15 = pdVar16 + 2;
        sVar35 = *(size_t *)((int)pdVar16 + 4);
        sVar49 = *(size_t *)(pdVar16 + 1);
        sVar40 = *(size_t *)((int)pdVar16 + 0xc);
        *(size_t *)&(pPVar34->point).x = *(size_t *)pdVar16;
        *(size_t *)((int)&(pPVar34->point).x + 4) = sVar35;
        *(size_t *)&(pPVar34->point).y = sVar49;
        *(size_t *)((int)&(pPVar34->point).y + 4) = sVar40;
        pdVar16 = pdVar15;
        pPVar17 = (PrimitiveInfo *)&pPVar34->coordinates;
      } while (pdVar15 != pdVar43);
      pdVar15 = pdVar28 + -2;
      PVar5 = *(PrimitiveType *)((int)pdVar9 + 0x24);
      pPVar34->coordinates = *(size_t *)pdVar43;
      pPVar34->primitive = PVar5;
      uVar39 = *(undefined4 *)((int)pdVar28 + 4);
      uVar38 = *(undefined4 *)(pdVar28 + 1);
      uVar37 = *(undefined4 *)((int)pdVar28 + 0xc);
      *(undefined4 *)&(pPVar29->point).x = *(undefined4 *)pdVar28;
      *(undefined4 *)((int)&(pPVar29->point).x + 4) = uVar39;
      *(undefined4 *)&(pPVar29->point).y = uVar38;
      *(undefined4 *)((int)&(pPVar29->point).y + 4) = uVar37;
      pdVar16 = pdVar9;
      pPVar17 = pPVar29 + 1;
      pdVar28 = pdVar15;
      pPVar29 = pPVar29 + 1;
    } while (pdVar12 + -2 != pdVar15);
    pPVar17 = pPVar18 + iStack_188;
    iVar13 = iStack_188;
  }
  pPVar33 = pPVar18 + iVar13 + 1;
  pdVar16 = pdVar9;
  pPVar29 = pPVar17;
  pPVar34 = pPVar33;
  if (bVar2) {
    do {
      pPVar34 = pPVar29;
      pdVar28 = pdVar16 + 2;
      sVar35 = *(size_t *)((int)pdVar16 + 4);
      sVar49 = *(size_t *)(pdVar16 + 1);
      sVar40 = *(size_t *)((int)pdVar16 + 0xc);
      *(size_t *)&(pPVar34->point).x = *(size_t *)pdVar16;
      *(size_t *)((int)&(pPVar34->point).x + 4) = sVar35;
      *(size_t *)&(pPVar34->point).y = sVar49;
      *(size_t *)((int)&(pPVar34->point).y + 4) = sVar40;
      pdVar16 = pdVar28;
      pPVar29 = (PrimitiveInfo *)&pPVar34->coordinates;
    } while (pdVar28 != pdVar43);
    PVar5 = *(PrimitiveType *)((int)pdVar9 + 0x24);
    pPVar34->coordinates = *(size_t *)(pdVar9 + 4);
    pPVar34->primitive = PVar5;
    uVar38 = *(undefined4 *)((int)&pPVar36[1].point.x + 4);
    uVar37 = *(undefined4 *)&pPVar36[1].point.y;
    uVar39 = *(undefined4 *)((int)&pPVar36[1].point.y + 4);
    *(undefined4 *)&(pPVar17->point).x = *(undefined4 *)&pPVar36[1].point.x;
    *(undefined4 *)((int)&(pPVar17->point).x + 4) = uVar38;
    *(undefined4 *)&(pPVar17->point).y = uVar37;
    *(undefined4 *)((int)&(pPVar17->point).y + 4) = uVar39;
    pPVar34 = pPVar18 + iVar13 + 2;
    pdVar16 = pdVar9;
    pPVar17 = pPVar33;
    pPVar29 = pPVar33;
  }
  do {
    pPVar36 = pPVar17;
    pdVar28 = pdVar16;
    pdVar16 = pdVar28 + 2;
    sVar35 = *(size_t *)((int)pdVar28 + 4);
    sVar49 = *(size_t *)(pdVar28 + 1);
    sVar40 = *(size_t *)((int)pdVar28 + 0xc);
    *(size_t *)&(pPVar36->point).x = *(size_t *)pdVar28;
    *(size_t *)((int)&(pPVar36->point).x + 4) = sVar35;
    *(size_t *)&(pPVar36->point).y = sVar49;
    *(size_t *)((int)&(pPVar36->point).y + 4) = sVar40;
    pPVar17 = (PrimitiveInfo *)&pPVar36->coordinates;
  } while (pdVar16 != pdVar43);
  PVar5 = *(PrimitiveType *)((int)pdVar28 + 0x14);
  pcVar48 = *(code **)(puVar47 + 0x3042b0);
  pPVar36->coordinates = *(size_t *)pdVar16;
  pPVar36->primitive = PVar5;
  uVar39 = *(undefined4 *)((int)&(pPVar18->point).x + 4);
  uVar38 = *(undefined4 *)&(pPVar18->point).y;
  uVar37 = *(undefined4 *)((int)&(pPVar18->point).y + 4);
  *(undefined4 *)&(pPVar29->point).x = *(undefined4 *)&(pPVar18->point).x;
  *(undefined4 *)((int)&(pPVar29->point).x + 4) = uVar39;
  *(undefined4 *)&(pPVar29->point).y = uVar38;
  *(undefined4 *)((int)&(pPVar29->point).y + 4) = uVar37;
  pPVar34->primitive = UndefinedPrimitive;
  pPVar18->coordinates = iVar44 + 1;
  (*pcVar48)(pdVar11);
  (**(code **)(puVar47 + 0x3042b0))(pdVar12);
  (**(code **)(puVar47 + 0x3042b0))(pdVar9);
LAB_000a61cc:
  MVar6 = DrawPolygonPrimitive(image_00,draw_info_00,pPVar18,exception);
  MStack_1d0 = MStack_1d0 & MVar6;
  (**(code **)(puVar47 + 0x3042b0))(pPVar18);
  if (MStack_1d0 == MagickFalse) goto LAB_000a5774;
  sVar40 = pPStack_e8->coordinates;
  iVar44 = sVar40 * 0x28;
  if ((draw_info->linecap == RoundCap) && (pPStack_e8->closed_subpath == MagickFalse)) {
    MVar6 = DrawRoundLinecap(image_00,draw_info,pPStack_e8,exception);
    MVar19 = DrawRoundLinecap(image_00,draw_info,pPStack_e8 + (sVar40 - 1),exception);
    MStack_1d0 = MVar6 & MVar19 & MagickTrue;
    iVar44 = pPStack_e8->coordinates * 0x28;
  }
LAB_000a6620:
  pPStack_e8 = (PrimitiveInfo *)((int)&(pPStack_e8->point).x + iVar44);
  if (pPStack_e8->primitive == UndefinedPrimitive) goto code_r0x000a6634;
  goto LAB_000a4e98;
code_r0x000a6634:
  pcVar48 = *(code **)(puVar47 + 0x3042d8);
  goto LAB_000a5778;
}



uint FUN_000a4c0c(undefined4 param_1,int param_2,undefined4 *param_3,undefined4 param_4)

{
  bool bVar1;
  bool bVar2;
  int iVar3;
  uint uVar4;
  int iVar5;
  double *pdVar6;
  double *pdVar7;
  double *pdVar8;
  int iVar9;
  double *pdVar10;
  double *pdVar11;
  undefined4 *puVar12;
  undefined4 *puVar13;
  uint uVar14;
  int iVar15;
  int iVar16;
  int iVar17;
  int iVar18;
  int iVar19;
  int iVar20;
  double *pdVar21;
  undefined4 *puVar22;
  undefined4 *puVar23;
  undefined4 *puVar24;
  undefined4 *puVar25;
  undefined4 uVar26;
  undefined4 uVar27;
  undefined4 uVar28;
  int iVar29;
  uint uVar30;
  double *pdVar31;
  int iVar32;
  int iVar33;
  uint uVar34;
  int iVar35;
  undefined *puVar36;
  code *pcVar37;
  int iVar38;
  double dVar39;
  double dVar40;
  undefined8 uVar41;
  double dVar42;
  double dVar43;
  double dVar44;
  undefined8 uVar45;
  double dVar46;
  double dVar47;
  double dVar48;
  double dVar49;
  double dVar50;
  double dVar51;
  double dVar52;
  double dVar53;
  double dVar54;
  double dVar55;
  double dVar56;
  double dVar57;
  double dVar58;
  double dVar59;
  undefined8 uVar60;
  double dVar61;
  double dVar62;
  double dVar63;
  double dVar64;
  double dStack_2b8;
  double dStack_2b0;
  double dStack_2a8;
  double dStack_2a0;
  double dStack_288;
  double dStack_280;
  double dStack_278;
  double dStack_270;
  double dStack_260;
  double dStack_258;
  double dStack_250;
  double dStack_248;
  double dStack_240;
  double dStack_238;
  uint uStack_22c;
  uint uStack_1d0;
  int iStack_188;
  double *pdStack_e8;
  double local_d8 [2];
  undefined4 local_c8;
  double local_b0;
  double local_88;
  double local_80;
  double local_58;
  double adStack_38 [2];
  undefined4 local_24;
  int local_c;
  
  puVar36 = PTR___stack_chk_guard_003a9230;
  pdStack_e8 = local_d8;
  local_c = *(int *)PTR___stack_chk_guard_003a9230;
  puVar13 = param_3;
  pdVar6 = pdStack_e8;
  pdVar7 = pdStack_e8;
  do {
    do {
      pdVar8 = pdVar6;
      puVar12 = puVar13;
      puVar13 = puVar12 + 4;
      uVar28 = puVar12[1];
      uVar27 = puVar12[2];
      uVar26 = puVar12[3];
      *(undefined4 *)pdVar8 = *puVar12;
      *(undefined4 *)((int)pdVar8 + 4) = uVar28;
      *(undefined4 *)(pdVar8 + 1) = uVar27;
      *(undefined4 *)((int)pdVar8 + 0xc) = uVar26;
      pdVar6 = pdVar8 + 2;
    } while (puVar13 != param_3 + 8);
    pdVar7 = pdVar7 + 5;
    uVar26 = puVar12[5];
    *(undefined4 *)(pdVar8 + 2) = *puVar13;
    *(undefined4 *)((int)pdVar8 + 0x14) = uVar26;
    puVar13 = param_3;
    pdVar6 = pdVar7;
  } while (pdVar7 != adStack_38);
  dVar39 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x47c8);
  local_24 = 0;
  local_c8 = 4;
  local_b0 = local_b0 + dVar39;
  local_88 = local_88 + dVar39;
  local_80 = local_80 + dVar39;
  local_58 = local_58 + dVar39;
  uVar4 = FUN_000a2d58();
  if (local_c == *(int *)puVar36) {
    return uVar4;
  }
  iVar17 = local_c;
  puVar36 = PTR___stack_chk_fail_003a9064;
  (*(code *)PTR___stack_chk_fail_003a9064)();
  if (*(int *)(iVar17 + 0x3350) != 0) {
    (**(code **)(puVar36 + 0x3044d0))
              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,
               0x168f,*(int *)(puVar36 + 0x303bd8) + 0x3dd8);
  }
  iVar5 = (**(code **)(puVar36 + 0x3044ec))(0,param_2);
  puVar13 = (undefined4 *)(iVar5 + 0x48);
  puVar12 = (undefined4 *)(param_2 + 0xa0);
  do {
    puVar23 = puVar12;
    puVar22 = puVar13;
    puVar12 = puVar23 + 4;
    uVar28 = puVar23[1];
    uVar27 = puVar23[2];
    uVar26 = puVar23[3];
    *puVar22 = *puVar23;
    puVar22[1] = uVar28;
    puVar22[2] = uVar27;
    puVar22[3] = uVar26;
    puVar13 = puVar22 + 4;
  } while (puVar12 != (undefined4 *)(param_2 + 0xf0));
  uVar26 = puVar23[5];
  iVar18 = *(int *)(iVar5 + 0x1a8);
  puVar22[4] = *puVar12;
  puVar22[5] = uVar26;
  if (iVar18 != 0) {
    uVar26 = (**(code **)(puVar36 + 0x30423c))();
    *(undefined4 *)(iVar5 + 0x1a8) = uVar26;
  }
  if (*(int *)(iVar5 + 0x1ac) != 0) {
    uVar26 = (**(code **)(puVar36 + 0x304b20))(*(int *)(iVar5 + 0x1ac),0,0,1,param_4);
    *(undefined4 *)(iVar5 + 0x1a8) = uVar26;
  }
  iVar18 = *(int *)((int)pdStack_e8 + 0x14);
  *(undefined4 *)(iVar5 + 0xec) = 0;
  *(undefined4 *)(iVar5 + 0xe8) = 0;
  *(undefined4 *)(iVar5 + 0x1b4) = 0;
  *(undefined4 *)(iVar5 + 0x1b0) = 0;
  *(undefined4 *)(iVar5 + 0x240) = 2;
  if (iVar18 != 0) {
    iVar18 = *(int *)(puVar36 + 0x303bd0);
    iVar19 = *(int *)(puVar36 + 0x303bd8);
    uStack_1d0 = 1;
    dVar39 = *(double *)(iVar18 + 0x13f8);
    iVar15 = *(int *)(puVar36 + 0x303bd0);
    dVar40 = *(double *)(iVar15 + 0x1410);
    uVar41 = *(undefined8 *)(iVar19 + 0x34a0);
LAB_000a4e98:
    iVar29 = *(int *)(pdStack_e8 + 2);
    if (iVar29 == 1) {
      iVar29 = 0x28;
      goto LAB_000a6620;
    }
    pdVar6 = (double *)(**(code **)(puVar36 + 0x3047fc))(iVar29 + 2,0x28);
    if (pdVar6 != (double *)0x0) {
      iVar32 = iVar29 * 0x28;
      (**(code **)(puVar36 + 0x304648))(pdVar6,pdStack_e8,iVar32);
      pdVar7 = pdVar6 + iVar29 * 5;
      if ((ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8) < dVar39) &&
         (ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]) < dVar39)) {
        if (*(int *)(param_2 + 0x248) - 1U < 2) {
          pdVar8 = pdStack_e8 + 5;
          do {
            pdVar21 = pdVar7;
            pdVar11 = pdVar8;
            pdVar8 = pdVar11 + 2;
            uVar28 = *(undefined4 *)(pdVar11 + 1);
            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);
            uVar27 = *(undefined4 *)pdVar11;
            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);
            *(undefined4 *)(pdVar21 + 1) = uVar28;
            *(undefined4 *)pdVar21 = uVar27;
            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;
            pdVar7 = pdVar21 + 2;
          } while (pdVar8 != pdStack_e8 + 9);
          iVar32 = iVar32 + 0x28;
          uVar26 = *(undefined4 *)pdVar8;
          pdVar7 = pdVar6 + iVar29 * 5 + 5;
          *(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14);
          *(undefined4 *)(pdVar21 + 2) = uVar26;
          iVar29 = iVar29 + 1;
        }
        iStack_188 = 1;
        bVar2 = true;
        bVar1 = iVar29 < 2;
        *(undefined4 *)((int)pdVar7 + 0x14) = 0;
        if (bVar1) goto LAB_000a6124;
LAB_000a4fe8:
        dVar61 = *(double *)(iVar18 + 0x13f8);
        dStack_260 = pdVar6[5] - *pdVar6;
        dStack_258 = pdVar6[6] - pdVar6[1];
        if ((dVar61 <= ABS(dStack_260)) || (dVar61 <= ABS(dStack_258))) {
          iVar38 = 1;
        }
        else {
          iVar38 = 1;
          pdVar7 = pdVar6 + 10;
          do {
            iVar38 = iVar38 + 1;
            if (iVar38 == iVar29) {
              iVar16 = *(int *)(param_2 + 0x244);
              iVar38 = iVar29;
              goto joined_r0x000a50f8;
            }
            dStack_260 = *pdVar7 - *pdVar6;
            dStack_258 = pdVar7[1] - pdVar6[1];
          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));
        }
LAB_000a5110:
        uVar4 = iVar29 * 2;
        pdVar7 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);
        pdVar8 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);
        if (pdVar7 == (double *)0x0) {
          if (pdVar8 != (double *)0x0) {
            (**(code **)(puVar36 + 0x3042b0))(pdVar8);
          }
LAB_000a6cbc:
          (**(code **)(puVar36 + 0x3042b0))(pdVar6);
          uVar26 = 0x1c93;
          goto LAB_000a5724;
        }
        if (pdVar8 == (double *)0x0) {
          (**(code **)(puVar36 + 0x3042b0))(pdVar7);
          goto LAB_000a6cbc;
        }
        if (ABS(dStack_260) < *(double *)(iVar18 + 0x13f8)) {
          dVar61 = 0.0;
          if (0.0 <= dStack_260) {
            iVar16 = *(int *)(puVar36 + 0x303bd8);
            if (dStack_258 < 0.0) goto LAB_000a56e8;
          }
          else {
            iVar16 = *(int *)(puVar36 + 0x303bd8);
            if (0.0 <= dStack_258) {
LAB_000a56e8:
              dVar52 = *(double *)(iVar16 + 0x47d0);
              goto LAB_000a51b0;
            }
          }
          dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);
        }
        else if (ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)) {
          dVar52 = 0.0;
          if (0.0 <= dStack_258) {
            iVar16 = *(int *)(puVar36 + 0x303bd8);
            if (dStack_260 < 0.0) goto LAB_000a684c;
          }
          else {
            iVar16 = *(int *)(puVar36 + 0x303bd8);
            if (0.0 <= dStack_260) {
LAB_000a684c:
              dVar61 = *(double *)(iVar16 + 0x47d0);
              goto LAB_000a51b0;
            }
          }
          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);
        }
        else {
          dVar52 = dStack_258 / dStack_260;
          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;
        }
LAB_000a51b0:
        dVar42 = (double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18);
        iVar16 = *(int *)(param_2 + 0x24c) * *(int *)(param_2 + 0x24c);
        dVar42 = dVar42 * *(double *)(param_2 + 0x1b0) *
                 *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400);
        dVar46 = (double)iVar16;
        if (iVar16 < 0) {
          dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418);
        }
        dVar46 = dVar46 * dVar42 * dVar42;
        if (*(int *)(param_2 + 0x244) == 3) {
          iVar16 = *(int *)(puVar36 + 0x303bd0);
          if (!bVar2) {
            if (bVar1) {
              dVar43 = 0.0;
              if (iVar29 == 1) {
                dVar53 = 0.0;
                iVar16 = 1;
LAB_000a6998:
                pdVar11 = pdVar6 + (iVar16 + -1) * 5;
              }
              else {
                pdVar11 = pdVar6 + 5;
                dVar53 = 0.0;
              }
            }
            else {
              dVar64 = *(double *)(iVar18 + 0x13f8);
              dVar53 = *pdVar6 - pdVar6[5];
              dVar43 = pdVar6[1] - pdVar6[6];
              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {
                pdVar11 = pdVar6 + 5;
              }
              else {
                iVar33 = 1;
                pdVar21 = pdVar6 + 10;
                do {
                  pdVar11 = pdVar21;
                  iVar33 = iVar33 + 1;
                  iVar16 = iVar29;
                  if (iVar33 == iVar29) goto LAB_000a6998;
                  dVar53 = *pdVar6 - *pdVar11;
                  dVar43 = pdVar6[1] - pdVar11[1];
                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));
              }
            }
            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);
            iVar16 = iVar29 + -2;
            dVar50 = pdVar11[1];
            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);
            pdVar21 = pdVar6 + iVar16 * 5;
            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;
            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;
            if (-1 < iVar16) {
              dVar64 = *(double *)(iVar18 + 0x13f8);
              dVar53 = *pdVar31 - *pdVar21;
              dVar43 = pdVar31[1] - pdVar21[1];
              if (ABS(dVar53) < dVar64) {
                pdVar11 = pdVar6 + (iVar29 + -3) * 5;
                do {
                  pdVar21 = pdVar11;
                  if (dVar64 <= ABS(dVar43)) {
                    pdVar21 = pdVar6 + iVar16 * 5;
                    break;
                  }
                  iVar16 = iVar16 + -1;
                  if (iVar16 == -1) break;
                  dVar53 = *pdVar31 - *pdVar21;
                  dVar43 = pdVar31[1] - pdVar21[1];
                  pdVar11 = pdVar21 + -5;
                } while (ABS(dVar53) < dVar64);
              }
            }
            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);
            dVar50 = pdVar21[1];
            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;
            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;
            goto LAB_000a5220;
          }
        }
        else {
LAB_000a5220:
          iVar16 = *(int *)(puVar36 + 0x303bd0);
        }
        dVar43 = dVar42 * dVar42;
        dVar53 = dVar43 / (dVar61 * dVar61 + *(double *)(iVar16 + 0x1438));
        dVar64 = SQRT(dVar53);
        if (dVar53 < 0.0) {
          (**(code **)(puVar36 + 0x304770))();
        }
        dVar61 = dVar61 * dVar64;
        pdVar11 = pdVar6 + iVar38 * 5;
        dVar58 = *pdVar11;
        dVar62 = pdVar11[1];
        dVar57 = dVar61 + pdVar6[1];
        dVar55 = pdVar6[1] - dVar61;
        dVar53 = dVar64 + *pdVar6;
        dStack_238 = dVar62 - dVar61;
        dStack_240 = dVar58 - dVar64;
        dVar56 = *pdVar6 - dVar64;
        dVar51 = dVar56;
        dVar50 = dVar57;
        dStack_250 = dVar64 + dVar58;
        dStack_248 = dVar61 + dVar62;
        if (0.0 < dVar64 * dStack_258 - dVar61 * dStack_260) {
          dVar51 = dVar53;
          dVar50 = dVar55;
          dVar53 = dVar56;
          dVar55 = dVar57;
          dStack_250 = dStack_240;
          dStack_248 = dStack_238;
          dStack_240 = dVar64 + dVar58;
          dStack_238 = dVar61 + dVar62;
        }
        iVar32 = iVar38 + 1;
        *pdVar8 = dVar51;
        pdVar8[1] = dVar55;
        *pdVar7 = dVar53;
        pdVar7[1] = dVar50;
        if (iVar32 < iVar29) {
          iVar20 = *(int *)(puVar36 + 0x303bd8);
          iVar33 = 1;
          iVar35 = 1;
          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78);
          dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8);
          uStack_22c = uVar4;
          do {
            dVar44 = pdVar11[6];
            dVar47 = pdVar11[5];
            dVar48 = dVar44 - dVar62;
            dVar54 = dVar47 - dVar58;
            dVar49 = dVar47 - dVar58;
            dVar56 = dStack_238;
            dVar57 = dStack_240;
            dVar59 = dStack_248;
            dVar63 = dStack_250;
            if (*(double *)(iVar20 + -0x2e38) <=
                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {
              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {
                dVar56 = 0.0;
                dVar57 = dVar43;
                if (0.0 <= dVar54) {
                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;
                }
                else if (dVar44 - dVar62 < 0.0) {
LAB_000a53e0:
                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);
                  goto joined_r0x000a568c;
                }
                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);
              }
              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {
                dVar54 = 0.0;
                dVar57 = dVar43 / dVar64;
                if (0.0 <= dVar44 - dVar62) {
                  iVar9 = *(int *)(puVar36 + 0x303bd8);
                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;
                }
                else {
                  iVar9 = *(int *)(puVar36 + 0x303bd8);
                  if (0.0 <= dVar47 - dVar58) {
LAB_000a5880:
                    dVar56 = *(double *)(iVar9 + 0x47d0);
                    goto joined_r0x000a568c;
                  }
                }
                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);
              }
              else {
                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);
                dVar56 = dVar61 / dVar54;
                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));
              }
joined_r0x000a568c:
              pdVar21 = pdVar6 + iVar38 * 5;
              dVar59 = SQRT(dVar57);
              if (dVar57 < 0.0) {
                (**(code **)(puVar36 + 0x304770))();
                dVar58 = *pdVar21;
                dVar62 = pdVar21[1];
                dVar47 = pdVar11[5];
                dVar44 = pdVar11[6];
              }
              dVar56 = dVar56 * dVar59;
              dStack_2a8 = dVar47 - dVar59;
              dStack_2a0 = dVar44 - dVar56;
              dStack_278 = dVar58 - dVar59;
              dStack_270 = dVar62 - dVar56;
              dStack_2b8 = dVar59 + dVar47;
              dStack_2b0 = dVar56 + dVar44;
              dStack_288 = dVar59 + dVar58;
              dStack_280 = dVar56 + dVar62;
              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {
                dStack_2b8 = dStack_2a8;
                dStack_2b0 = dStack_2a0;
                dStack_2a8 = dVar59 + dVar47;
                dStack_2a0 = dVar56 + dVar44;
                dStack_288 = dStack_278;
                dStack_280 = dStack_270;
                dStack_278 = dVar59 + dVar58;
                dStack_270 = dVar56 + dVar62;
              }
              dVar56 = dVar52 - dVar54;
              dVar58 = dStack_250;
              dVar62 = dStack_248;
              dVar44 = dStack_238;
              dVar47 = dStack_240;
              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {
                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;
                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;
                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;
                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;
              }
              if ((int)uStack_22c <= iVar35 + 0x618) {
                if (uStack_22c < 0xfffff9e8) {
                  pdVar7 = (double *)
                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);
                  uStack_22c = uStack_22c + 0x618;
                }
                else {
                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);
                }
              }
              if (iVar33 + 0x618 < (int)uVar4) {
                if (pdVar7 == (double *)0x0) {
LAB_000a5700:
                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);
LAB_000a5710:
                  pcVar37 = *(code **)(puVar36 + 0x3042b0);
                  goto LAB_000a5714;
                }
              }
              else {
                if (0xfffff9e7 < uVar4) {
                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);
                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;
LAB_000a598c:
                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;
                  pcVar37 = *(code **)(puVar36 + 0x3042b0);
LAB_000a5714:
                  (*pcVar37)(pdVar6);
                  uVar26 = 0x1d17;
                  goto LAB_000a5724;
                }
                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);
                uVar4 = uVar4 + 0x618;
                if (pdVar7 == (double *)0x0) goto LAB_000a598c;
LAB_000a5594:
                if (pdVar8 == (double *)0x0) {
                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);
                  goto LAB_000a5710;
                }
              }
              iVar9 = *(int *)(param_2 + 0x248);
              dVar51 = dStack_278;
              dVar50 = dStack_280;
              dVar53 = dStack_288;
              dVar55 = dStack_270;
              iVar38 = iVar32;
              dVar52 = dVar54;
              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {
                if (iVar9 != 2) {
                  if (iVar9 == 3) {
                    pdVar21 = pdVar7 + iVar35 * 2;
                    pdVar8[iVar33 * 2] = dStack_240;
                    (pdVar8 + iVar33 * 2)[1] = dStack_238;
                    pdVar8[iVar33 * 2 + 2] = dStack_278;
                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;
                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +
                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {
                      *pdVar21 = dVar58;
                      pdVar21[1] = dVar62;
                      dStack_258 = dVar48;
                      dStack_260 = dVar49;
                      dVar56 = dStack_2a0;
                      dVar57 = dStack_2a8;
                      dVar59 = dStack_2b0;
                      dVar63 = dStack_2b8;
                      iVar33 = iVar33 + 2;
                      iVar35 = iVar35 + 1;
                    }
                    else {
                      *pdVar21 = dStack_250;
                      pdVar21[1] = dStack_248;
                      pdVar7[iVar35 * 2 + 2] = dStack_288;
                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;
                      dStack_258 = dVar48;
                      dStack_260 = dVar49;
                      dVar56 = dStack_2a0;
                      dVar57 = dStack_2a8;
                      dVar59 = dStack_2b0;
                      dVar63 = dStack_2b8;
                      iVar33 = iVar33 + 2;
                      iVar35 = iVar35 + 2;
                    }
                  }
                  else {
                    dStack_258 = dVar48;
                    dStack_260 = dVar49;
                    dVar56 = dStack_2a0;
                    dVar57 = dStack_2a8;
                    dVar59 = dStack_2b0;
                    dVar63 = dStack_2b8;
                    if (iVar9 == 1) {
                      pdVar21 = pdVar7 + iVar35 * 2;
                      pdVar31 = pdVar8 + iVar33 * 2;
                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +
                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;
LAB_000a58dc:
                      iVar33 = iVar33 + 1;
                      iVar35 = iVar35 + 1;
                      *pdVar31 = dVar47;
                      pdVar31[1] = dVar44;
                      *pdVar21 = dVar58;
                      pdVar21[1] = dVar62;
                      dStack_258 = dVar48;
                      dStack_260 = dVar49;
                      dVar56 = dStack_2a0;
                      dVar57 = dStack_2a8;
                      dVar59 = dStack_2b0;
                      dVar63 = dStack_2b8;
                    }
                  }
                  goto joined_r0x000a5a50;
                }
                iVar9 = iVar35 + 1;
                pdVar31 = pdVar7 + iVar35 * 2;
                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=
                    dVar46) {
                  *pdVar31 = dVar58;
                  pdVar31[1] = dVar62;
                }
                else {
                  iVar9 = iVar35 + 2;
                  *pdVar31 = dStack_250;
                  pdVar31[1] = dStack_248;
                  pdVar7[iVar35 * 2 + 2] = dStack_288;
                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;
                }
                dVar58 = *pdVar21;
                dVar57 = pdVar21[1];
                dVar52 = dVar57;
                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))
                                           (dStack_238 - dVar57,dStack_240 - dVar58);
                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))
                                           (dStack_270 - dVar52,dStack_278 - dVar58);
                if (dVar52 < dVar56) {
                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);
                }
                dVar52 = dVar52 - dVar56;
                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;
                dVar59 = SQRT(dVar62);
                if (dVar62 < 0.0) {
                  (**(code **)(puVar36 + 0x304770))();
                }
                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));
                dVar59 = *(double *)(iVar15 + 0x1410);
                if (dVar62 < dVar59) {
                  uVar14 = (uint)dVar62;
                }
                else {
                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;
                }
                if ((int)uStack_22c <= iVar9 + 0x618) {
                  if (uStack_22c < 0xfffff9e8) {
                    iVar35 = uStack_22c + 0xc30;
                    uStack_22c = uStack_22c + 0x618;
                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);
                  }
                  else {
                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);
                  }
                }
                if (uVar14 + 0x618 < 0x4000001) {
                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {
                    pcVar37 = *(code **)(puVar36 + 0x3042b0);
                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;
                    iVar35 = uVar14 + uVar4;
                    uVar4 = iVar35 + 0x618;
                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)
                    ;
                    goto LAB_000a64c4;
                  }
                  if (pdVar7 == (double *)0x0) {
LAB_000a6884:
                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);
LAB_000a6d2c:
                    pcVar37 = *(code **)(puVar36 + 0x3042b0);
                    goto LAB_000a6d30;
                  }
                }
                else {
                  pcVar37 = *(code **)(puVar36 + 0x3042b0);
LAB_000a67d4:
                  pdVar8 = (double *)(*pcVar37)(pdVar8);
LAB_000a64c4:
                  if (pdVar7 == (double *)0x0) {
                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;
                    pcVar37 = *(code **)(puVar36 + 0x3042b0);
LAB_000a6d30:
                    (*pcVar37)(pdVar6);
                    uVar26 = 0x1d4f;
                    goto LAB_000a5724;
                  }
                  if (pdVar8 == (double *)0x0) {
                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);
                    goto LAB_000a6d2c;
                  }
                }
                pdVar21 = pdVar8 + iVar33 * 2;
                *pdVar21 = dStack_240;
                pdVar21[1] = dStack_238;
                if (1 < (int)uVar14) {
                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);
                  uVar30 = 1;
                  do {
                    uVar34 = uVar30 + 1;
                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;
                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);
                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);
                    pcVar37 = *(code **)(puVar36 + 0x304ca8);
                    pdVar21[2] = dVar42 * dVar62 + dVar58;
                    uVar45 = (*pcVar37)(dVar59,uVar60);
                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);
                    pdVar21[3] = dVar42 * dVar62 + dVar57;
                    uVar30 = uVar34;
                    pdVar21 = pdVar21 + 2;
                  } while (uVar34 != uVar14);
                }
                *pdVar8 = dStack_278;
                pdVar8[1] = dStack_270;
                dStack_258 = dVar48;
                dStack_260 = dVar49;
                dVar56 = dStack_2a0;
                dVar57 = dStack_2a8;
                dVar59 = dStack_2b0;
                dVar63 = dStack_2b8;
                iVar33 = 1;
                iVar35 = iVar9;
                dVar52 = dVar54;
              }
              else {
                if (iVar9 != 2) {
                  if (iVar9 == 3) {
                    iVar9 = iVar35 * 2;
                    iVar3 = iVar35 * 2;
                    iVar35 = iVar35 + 2;
                    pdVar7[iVar9] = dStack_250;
                    (pdVar7 + iVar9)[1] = dStack_248;
                    pdVar21 = pdVar8 + iVar33 * 2;
                    pdVar7[iVar3 + 2] = dStack_288;
                    (pdVar7 + iVar3 + 2)[1] = dStack_280;
                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +
                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {
                      *pdVar21 = dVar47;
                      pdVar21[1] = dVar44;
                      dStack_258 = dVar48;
                      dStack_260 = dVar49;
                      dVar56 = dStack_2a0;
                      dVar57 = dStack_2a8;
                      dVar59 = dStack_2b0;
                      dVar63 = dStack_2b8;
                      iVar33 = iVar33 + 1;
                    }
                    else {
                      *pdVar21 = dStack_240;
                      pdVar21[1] = dStack_238;
                      pdVar8[iVar33 * 2 + 2] = dStack_278;
                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;
                      dStack_258 = dVar48;
                      dStack_260 = dVar49;
                      dVar56 = dStack_2a0;
                      dVar57 = dStack_2a8;
                      dVar59 = dStack_2b0;
                      dVar63 = dStack_2b8;
                      iVar33 = iVar33 + 2;
                    }
                  }
                  else {
                    dStack_258 = dVar48;
                    dStack_260 = dVar49;
                    dVar56 = dStack_2a0;
                    dVar57 = dStack_2a8;
                    dVar59 = dStack_2b0;
                    dVar63 = dStack_2b8;
                    if (iVar9 == 1) {
                      pdVar21 = pdVar7 + iVar35 * 2;
                      pdVar31 = pdVar8 + iVar33 * 2;
                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +
                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;
LAB_000a607c:
                      *pdVar31 = dStack_240;
                      pdVar31[1] = dStack_238;
                      pdVar8[iVar33 * 2 + 2] = dStack_278;
                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;
                      *pdVar21 = dStack_250;
                      pdVar21[1] = dStack_248;
                      pdVar7[iVar35 * 2 + 2] = dStack_288;
                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;
                      dStack_258 = dVar48;
                      dStack_260 = dVar49;
                      dVar56 = dStack_2a0;
                      dVar57 = dStack_2a8;
                      dVar59 = dStack_2b0;
                      dVar63 = dStack_2b8;
                      iVar33 = iVar33 + 2;
                      iVar35 = iVar35 + 2;
                    }
                  }
                  goto joined_r0x000a5a50;
                }
                iVar9 = iVar33 + 1;
                pdVar31 = pdVar8 + iVar33 * 2;
                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=
                    dVar46) {
                  *pdVar31 = dVar47;
                  pdVar31[1] = dVar44;
                }
                else {
                  iVar9 = iVar33 + 2;
                  *pdVar31 = dStack_240;
                  pdVar31[1] = dStack_238;
                  pdVar8[iVar33 * 2 + 2] = dStack_278;
                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;
                }
                dVar57 = *pdVar21;
                dVar58 = pdVar21[1];
                dVar52 = dVar57;
                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))
                                           (dStack_248 - dVar58,dStack_250 - dVar57);
                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))
                                           (dStack_280 - dVar58,dStack_288 - dVar52);
                if (dVar56 < dVar52) {
                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);
                }
                dVar62 = dVar56 - dVar52;
                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;
                dVar63 = SQRT(dVar59);
                if (dVar59 < 0.0) {
                  (**(code **)(puVar36 + 0x304770))();
                }
                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));
                if (dVar62 < dVar40) {
                  uVar30 = (uint)dVar62;
                  uVar14 = uVar30 + 0x618;
                  pcVar37 = *(code **)(puVar36 + 0x3042b0);
                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;
LAB_000a66a4:
                  pdVar7 = (double *)(*pcVar37)(pdVar7);
                }
                else {
                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;
                  uVar14 = uVar30 + 0x618;
                  if (0x4000000 < uVar14) {
                    pcVar37 = *(code **)(puVar36 + 0x3042b0);
                    goto LAB_000a66a4;
                  }
LAB_000a5ec0:
                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {
                    pcVar37 = *(code **)(puVar36 + 0x3042b0);
                    if (~uStack_22c < uVar14) goto LAB_000a66a4;
                    iVar33 = uStack_22c + uVar30;
                    uStack_22c = iVar33 + 0x618;
                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)
                    ;
                  }
                }
                if (iVar9 + 0x618 < (int)uVar4) {
                  if (pdVar7 == (double *)0x0) {
LAB_000a664c:
                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);
LAB_000a665c:
                    pcVar37 = *(code **)(puVar36 + 0x3042b0);
                    goto LAB_000a6660;
                  }
                }
                else {
                  if (uVar4 < 0xfffff9e8) {
                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);
                    uVar4 = uVar4 + 0x618;
                  }
                  else {
                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);
                  }
                  if (pdVar7 == (double *)0x0) {
                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;
                    pcVar37 = *(code **)(puVar36 + 0x3042b0);
LAB_000a6660:
                    (*pcVar37)(pdVar6);
                    uVar26 = 0x1d98;
                    goto LAB_000a5724;
                  }
                  if (pdVar8 == (double *)0x0) {
                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);
                    goto LAB_000a665c;
                  }
                }
                pdVar21 = pdVar7 + iVar35 * 2;
                *pdVar21 = dStack_250;
                pdVar21[1] = dStack_248;
                if (1 < (int)uVar30) {
                  dVar52 = dVar52 - dVar56;
                  uVar14 = 1;
                  do {
                    uVar34 = uVar14 + 1;
                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;
                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);
                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);
                    pcVar37 = *(code **)(puVar36 + 0x304ca8);
                    pdVar21[2] = dVar42 * dVar62 + dVar57;
                    uVar60 = (*pcVar37)(dVar59,uVar41);
                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);
                    pdVar21[3] = dVar42 * dVar62 + dVar58;
                    uVar14 = uVar34;
                    pdVar21 = pdVar21 + 2;
                  } while (uVar34 != uVar30);
                }
                *pdVar7 = dStack_288;
                pdVar7[1] = dStack_280;
                dStack_258 = dVar48;
                dStack_260 = dVar49;
                dVar56 = dStack_2a0;
                dVar57 = dStack_2a8;
                dVar59 = dStack_2b0;
                dVar63 = dStack_2b8;
                iVar33 = iVar9;
                iVar35 = 1;
                dVar52 = dVar54;
              }
            }
joined_r0x000a5a50:
            dStack_250 = dVar63;
            dStack_248 = dVar59;
            dStack_240 = dVar57;
            dStack_238 = dVar56;
            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;
            pdVar11 = pdVar11 + 5;
            iVar32 = iVar32 + 1;
            dVar58 = pdVar6[iVar38 * 5];
            dVar62 = (pdVar6 + iVar38 * 5)[1];
          } while( true );
        }
        iVar38 = 4;
        iVar32 = 0x10;
        iVar35 = 0x10;
        iVar29 = 2;
        goto LAB_000a5a70;
      }
      bVar1 = iVar29 < 2;
      iStack_188 = 0;
      bVar2 = false;
      *(undefined4 *)((int)pdVar7 + 0x14) = 0;
      if (!bVar1) goto LAB_000a4fe8;
LAB_000a6124:
      if (iVar29 != 1) {
        iVar38 = 1;
        dStack_258 = 0.0;
        dStack_260 = 0.0;
        goto LAB_000a5110;
      }
      iVar38 = 1;
      dStack_258 = 0.0;
      iVar16 = *(int *)(param_2 + 0x244);
      dStack_260 = 0.0;
joined_r0x000a50f8:
      if (iVar16 == 2) {
        pcVar37 = *(code **)(puVar36 + 0x304644);
        if (!bVar2) {
          iVar38 = iVar38 + -1;
          goto LAB_000a5110;
        }
      }
      else {
        pcVar37 = *(code **)(puVar36 + 0x304644);
      }
      puVar13 = (undefined4 *)(*pcVar37)(0x28);
      pdVar7 = pdVar6;
      puVar12 = puVar13;
      do {
        puVar22 = puVar12;
        pdVar8 = pdVar7;
        pdVar7 = pdVar8 + 2;
        uVar28 = *(undefined4 *)((int)pdVar8 + 4);
        uVar27 = *(undefined4 *)(pdVar8 + 1);
        uVar26 = *(undefined4 *)((int)pdVar8 + 0xc);
        *puVar22 = *(undefined4 *)pdVar8;
        puVar22[1] = uVar28;
        puVar22[2] = uVar27;
        puVar22[3] = uVar26;
        puVar12 = puVar22 + 4;
      } while (pdVar7 != pdVar6 + 4);
      uVar26 = *(undefined4 *)((int)pdVar8 + 0x14);
      pcVar37 = *(code **)(puVar36 + 0x3042b0);
      puVar22[4] = *(undefined4 *)pdVar7;
      puVar22[5] = uVar26;
      puVar13[4] = 0;
      (*pcVar37)(pdVar6);
      goto LAB_000a61cc;
    }
    uVar26 = 0x1c57;
LAB_000a5724:
    (**(code **)(puVar36 + 0x304210))
              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,
               uVar26,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,
               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);
    uStack_1d0 = 0;
    goto LAB_000a5774;
  }
  uStack_1d0 = 1;
LAB_000a5774:
  pcVar37 = *(code **)(puVar36 + 0x3042d8);
LAB_000a5778:
  (*pcVar37)(iVar5);
  if (*(int *)(iVar17 + 0x3350) != 0) {
    (**(code **)(puVar36 + 0x3044d0))
              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,
               0x16b4,*(int *)(puVar36 + 0x303bd8) + 0x3df8);
  }
  return uStack_1d0;
LAB_000a5a58:
  iVar29 = iVar35 + 1;
  iVar35 = iVar35 << 4;
  iVar32 = iVar33 << 4;
  iVar38 = iVar33 + 1 + iVar29;
LAB_000a5a70:
  pcVar37 = *(code **)(puVar36 + 0x3047fc);
  iVar38 = iStack_188 * 2 + iVar38;
  *(double *)((int)pdVar7 + iVar35) = dStack_250;
  ((double *)((int)pdVar7 + iVar35))[1] = dStack_248;
  *(double *)((int)pdVar8 + iVar32) = dStack_240;
  ((double *)((int)pdVar8 + iVar32))[1] = dStack_238;
  puVar13 = (undefined4 *)(*pcVar37)(iVar38 + 2,0x28);
  if (puVar13 == (undefined4 *)0x0) {
    (**(code **)(puVar36 + 0x304210))
              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,
               0x1dbc,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,
               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);
    (**(code **)(puVar36 + 0x3042b0))(pdVar7);
    (**(code **)(puVar36 + 0x3042b0))(pdVar8);
    (**(code **)(puVar36 + 0x3042b0))(pdVar6);
    uStack_1d0 = 0;
    goto LAB_000a5774;
  }
  pdVar31 = pdVar6 + 4;
  pdVar11 = pdVar6;
  puVar12 = puVar13;
  pdVar21 = pdVar7;
  puVar22 = puVar13;
  do {
    do {
      puVar23 = puVar12;
      pdVar10 = pdVar11 + 2;
      uVar28 = *(undefined4 *)((int)pdVar11 + 4);
      uVar27 = *(undefined4 *)(pdVar11 + 1);
      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);
      *puVar23 = *(undefined4 *)pdVar11;
      puVar23[1] = uVar28;
      puVar23[2] = uVar27;
      puVar23[3] = uVar26;
      pdVar11 = pdVar10;
      puVar12 = puVar23 + 4;
    } while (pdVar10 != pdVar31);
    pdVar10 = pdVar21 + 2;
    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);
    puVar23[4] = *(undefined4 *)pdVar31;
    puVar23[5] = uVar26;
    uVar28 = *(undefined4 *)((int)pdVar21 + 4);
    uVar27 = *(undefined4 *)(pdVar21 + 1);
    uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);
    *puVar22 = *(undefined4 *)pdVar21;
    puVar22[1] = uVar28;
    puVar22[2] = uVar27;
    puVar22[3] = uVar26;
    pdVar11 = pdVar6;
    puVar12 = puVar22 + 10;
    pdVar21 = pdVar10;
    puVar22 = puVar22 + 10;
  } while (pdVar7 + iVar29 * 2 != pdVar10);
  puVar22 = puVar13 + iVar29 * 10;
  puVar12 = puVar22;
  if (bVar2) {
    do {
      puVar23 = puVar12;
      pdVar21 = pdVar11 + 2;
      uVar28 = *(undefined4 *)((int)pdVar11 + 4);
      uVar27 = *(undefined4 *)(pdVar11 + 1);
      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);
      *puVar23 = *(undefined4 *)pdVar11;
      puVar23[1] = uVar28;
      puVar23[2] = uVar27;
      puVar23[3] = uVar26;
      pdVar11 = pdVar21;
      puVar12 = puVar23 + 4;
    } while (pdVar21 != pdVar31);
    iVar29 = iVar29 + 1;
    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);
    puVar23[4] = *(undefined4 *)(pdVar6 + 4);
    puVar23[5] = uVar26;
    uVar28 = puVar13[1];
    uVar27 = puVar13[2];
    uVar26 = puVar13[3];
    puVar12 = puVar13 + iVar29 * 10;
    *puVar22 = *puVar13;
    puVar22[1] = uVar28;
    puVar22[2] = uVar27;
    puVar22[3] = uVar26;
  }
  iStack_188 = iVar38 - iStack_188;
  if (iVar29 < iStack_188) {
    pdVar11 = pdVar6;
    puVar12 = puVar13 + iVar29 * 10;
    pdVar21 = pdVar8 + ((iStack_188 + 0xfffffff) - iVar29) * 2;
    puVar23 = puVar13 + iVar29 * 10;
    do {
      do {
        puVar25 = puVar12;
        pdVar10 = pdVar11 + 2;
        uVar28 = *(undefined4 *)((int)pdVar11 + 4);
        uVar27 = *(undefined4 *)(pdVar11 + 1);
        uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);
        *puVar25 = *(undefined4 *)pdVar11;
        puVar25[1] = uVar28;
        puVar25[2] = uVar27;
        puVar25[3] = uVar26;
        pdVar11 = pdVar10;
        puVar12 = puVar25 + 4;
      } while (pdVar10 != pdVar31);
      pdVar10 = pdVar21 + -2;
      uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);
      puVar25[4] = *(undefined4 *)pdVar31;
      puVar25[5] = uVar26;
      uVar28 = *(undefined4 *)((int)pdVar21 + 4);
      uVar27 = *(undefined4 *)(pdVar21 + 1);
      uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);
      *puVar23 = *(undefined4 *)pdVar21;
      puVar23[1] = uVar28;
      puVar23[2] = uVar27;
      puVar23[3] = uVar26;
      pdVar11 = pdVar6;
      puVar12 = puVar23 + 10;
      pdVar21 = pdVar10;
      puVar23 = puVar23 + 10;
    } while (pdVar8 + -2 != pdVar10);
    puVar12 = puVar13 + iStack_188 * 10;
    iVar29 = iStack_188;
  }
  puVar24 = puVar13 + (iVar29 + 1) * 10;
  pdVar11 = pdVar6;
  puVar23 = puVar12;
  puVar25 = puVar24;
  if (bVar2) {
    do {
      puVar25 = puVar23;
      pdVar21 = pdVar11 + 2;
      uVar28 = *(undefined4 *)((int)pdVar11 + 4);
      uVar27 = *(undefined4 *)(pdVar11 + 1);
      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);
      *puVar25 = *(undefined4 *)pdVar11;
      puVar25[1] = uVar28;
      puVar25[2] = uVar27;
      puVar25[3] = uVar26;
      pdVar11 = pdVar21;
      puVar23 = puVar25 + 4;
    } while (pdVar21 != pdVar31);
    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);
    puVar25[4] = *(undefined4 *)(pdVar6 + 4);
    puVar25[5] = uVar26;
    uVar27 = puVar22[0xb];
    uVar26 = puVar22[0xc];
    uVar28 = puVar22[0xd];
    *puVar12 = puVar22[10];
    puVar12[1] = uVar27;
    puVar12[2] = uVar26;
    puVar12[3] = uVar28;
    puVar25 = puVar13 + (iVar29 + 1) * 10 + 10;
    pdVar11 = pdVar6;
    puVar12 = puVar24;
    puVar23 = puVar24;
  }
  do {
    puVar22 = puVar12;
    pdVar21 = pdVar11;
    pdVar11 = pdVar21 + 2;
    uVar28 = *(undefined4 *)((int)pdVar21 + 4);
    uVar27 = *(undefined4 *)(pdVar21 + 1);
    uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);
    *puVar22 = *(undefined4 *)pdVar21;
    puVar22[1] = uVar28;
    puVar22[2] = uVar27;
    puVar22[3] = uVar26;
    puVar12 = puVar22 + 4;
  } while (pdVar11 != pdVar31);
  uVar26 = *(undefined4 *)((int)pdVar21 + 0x14);
  pcVar37 = *(code **)(puVar36 + 0x3042b0);
  puVar22[4] = *(undefined4 *)pdVar11;
  puVar22[5] = uVar26;
  uVar28 = puVar13[1];
  uVar27 = puVar13[2];
  uVar26 = puVar13[3];
  *puVar23 = *puVar13;
  puVar23[1] = uVar28;
  puVar23[2] = uVar27;
  puVar23[3] = uVar26;
  puVar25[5] = 0;
  puVar13[4] = iVar38 + 1;
  (*pcVar37)(pdVar7);
  (**(code **)(puVar36 + 0x3042b0))(pdVar8);
  (**(code **)(puVar36 + 0x3042b0))(pdVar6);
LAB_000a61cc:
  uVar4 = FUN_000a2d58(iVar17,iVar5,puVar13,param_4);
  uStack_1d0 = uStack_1d0 & uVar4;
  (**(code **)(puVar36 + 0x3042b0))(puVar13);
  if (uStack_1d0 == 0) goto LAB_000a5774;
  iVar32 = *(int *)(pdStack_e8 + 2);
  iVar29 = iVar32 * 0x28;
  if ((*(int *)(param_2 + 0x244) == 2) && (*(int *)(pdStack_e8 + 4) == 0)) {
    uVar4 = FUN_000a4c0c(iVar17,param_2,pdStack_e8,param_4);
    uVar14 = FUN_000a4c0c(iVar17,param_2,pdStack_e8 + iVar32 * 5 + -5,param_4);
    uStack_1d0 = uVar4 & uVar14 & 1;
    iVar29 = *(int *)(pdStack_e8 + 2) * 0x28;
  }
LAB_000a6620:
  pdStack_e8 = (double *)((int)pdStack_e8 + iVar29);
  if (*(int *)((int)pdStack_e8 + 0x14) == 0) goto code_r0x000a6634;
  goto LAB_000a4e98;
code_r0x000a6634:
  pcVar37 = *(code **)(puVar36 + 0x3042d8);
  goto LAB_000a5778;
}


lui gp,0x31
addiu gp,gp,-0x435c
addu gp,gp,t9
addiu sp,sp,-0xf0
addiu t5,a2,0x20
addiu t6,sp,0x18
sw s0,0xe8(sp)
addiu t7,sp,0xb8
lw s0,-0x7680(gp)
or t0,t6,zero
sw gp,0x10(sp)
sw ra,0xec(sp)
lw v0,0x0(s0)
sw v0,0xe4(sp)
or v0,a2,zero
or v1,t0,zero
lw t4,0x0(v0)
addiu v0,v0,0x10
addiu v1,v1,0x10
lw t3,-0xc(v0)
lw t2,-0x8(v0)
lw t1,-0x4(v0)
sw t4,-0x10(v1)
sw t3,-0xc(v1)
sw t2,-0x8(v1)
bne v0,t5,0x000a4c4c
_sw t1,-0x4(v1)
lw t1,0x0(v0)
addiu t0,t0,0x28
lw v0,0x4(v0)
sw t1,0x0(v1)
bne t0,t7,0x000a4c44
_sw v0,0x4(v1)
lw v0,-0x7fc8(gp)
or a2,t6,zero
ldc1 f8,0x40(sp)
lw t9,-0x7e5c(gp)
ldc1 f0,0x47c8(v0)
li v0,0x4
sw zero,0xcc(sp)
ldc1 f6,0x68(sp)
addiu t9,t9,0x2d58
sw v0,0x28(sp)
ldc1 f2,0x70(sp)
ldc1 f4,0x98(sp)
add.D f8,f8,f0
add.D f6,f6,f0
add.D f2,f2,f0
add.D f0,f4,f0
sdc1 f8,0x40(sp)
sdc1 f6,0x68(sp)
sdc1 f2,0x70(sp)
bal 0x000a2d58
_sdc1 f0,0x98(sp)
lw a0,0xe4(sp)
lw v1,0x0(s0)
bne a0,v1,0x000a4d04
_lw gp,0x10(sp)
lw ra,0xec(sp)
lw s0,0xe8(sp)
jr ra
_addiu sp,sp,0xf0
lw t9,-0x784c(gp)
jalr t9
_nop
(translation_unit "uint FUN_000a4c0c(undefined4 param_1,int param_2,undefined4 *param_3,undefined4 param_4)\n\n{\n  bool bVar1;\n  bool bVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  double *pdVar6;\n  double *pdVar7;\n  double *pdVar8;\n  int iVar9;\n  double *pdVar10;\n  double *pdVar11;\n  undefined4 *puVar12;\n  undefined4 *puVar13;\n  uint uVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  int iVar18;\n  int iVar19;\n  int iVar20;\n  double *pdVar21;\n  undefined4 *puVar22;\n  undefined4 *puVar23;\n  undefined4 *puVar24;\n  undefined4 *puVar25;\n  undefined4 uVar26;\n  undefined4 uVar27;\n  undefined4 uVar28;\n  int iVar29;\n  uint uVar30;\n  double *pdVar31;\n  int iVar32;\n  int iVar33;\n  uint uVar34;\n  int iVar35;\n  undefined *puVar36;\n  code *pcVar37;\n  int iVar38;\n  double dVar39;\n  double dVar40;\n  undefined8 uVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  undefined8 uVar45;\n  double dVar46;\n  double dVar47;\n  double dVar48;\n  double dVar49;\n  double dVar50;\n  double dVar51;\n  double dVar52;\n  double dVar53;\n  double dVar54;\n  double dVar55;\n  double dVar56;\n  double dVar57;\n  double dVar58;\n  double dVar59;\n  undefined8 uVar60;\n  double dVar61;\n  double dVar62;\n  double dVar63;\n  double dVar64;\n  double dStack_2b8;\n  double dStack_2b0;\n  double dStack_2a8;\n  double dStack_2a0;\n  double dStack_288;\n  double dStack_280;\n  double dStack_278;\n  double dStack_270;\n  double dStack_260;\n  double dStack_258;\n  double dStack_250;\n  double dStack_248;\n  double dStack_240;\n  double dStack_238;\n  uint uStack_22c;\n  uint uStack_1d0;\n  int iStack_188;\n  double *pdStack_e8;\n  double local_d8 [2];\n  undefined4 local_c8;\n  double local_b0;\n  double local_88;\n  double local_80;\n  double local_58;\n  double adStack_38 [2];\n  undefined4 local_24;\n  int local_c;\n  \n  puVar36 = PTR___stack_chk_guard_003a9230;\n  pdStack_e8 = local_d8;\n  local_c = *(int *)PTR___stack_chk_guard_003a9230;\n  puVar13 = param_3;\n  pdVar6 = pdStack_e8;\n  pdVar7 = pdStack_e8;\n  do {\n    do {\n      pdVar8 = pdVar6;\n      puVar12 = puVar13;\n      puVar13 = puVar12 + 4;\n      uVar28 = puVar12[1];\n      uVar27 = puVar12[2];\n      uVar26 = puVar12[3];\n      *(undefined4 *)pdVar8 = *puVar12;\n      *(undefined4 *)((int)pdVar8 + 4) = uVar28;\n      *(undefined4 *)(pdVar8 + 1) = uVar27;\n      *(undefined4 *)((int)pdVar8 + 0xc) = uVar26;\n      pdVar6 = pdVar8 + 2;\n    } while (puVar13 != param_3 + 8);\n    pdVar7 = pdVar7 + 5;\n    uVar26 = puVar12[5];\n    *(undefined4 *)(pdVar8 + 2) = *puVar13;\n    *(undefined4 *)((int)pdVar8 + 0x14) = uVar26;\n    puVar13 = param_3;\n    pdVar6 = pdVar7;\n  } while (pdVar7 != adStack_38);\n  dVar39 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x47c8);\n  local_24 = 0;\n  local_c8 = 4;\n  local_b0 = local_b0 + dVar39;\n  local_88 = local_88 + dVar39;\n  local_80 = local_80 + dVar39;\n  local_58 = local_58 + dVar39;\n  uVar4 = FUN_000a2d58();\n  if (local_c == *(int *)puVar36) {\n    return uVar4;\n  }\n  iVar17 = local_c;\n  puVar36 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  if (*(int *)(iVar17 + 0x3350) != 0) {\n    (**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x168f,*(int *)(puVar36 + 0x303bd8) + 0x3dd8);\n  }\n  iVar5 = (**(code **)(puVar36 + 0x3044ec))(0,param_2);\n  puVar13 = (undefined4 *)(iVar5 + 0x48);\n  puVar12 = (undefined4 *)(param_2 + 0xa0);\n  do {\n    puVar23 = puVar12;\n    puVar22 = puVar13;\n    puVar12 = puVar23 + 4;\n    uVar28 = puVar23[1];\n    uVar27 = puVar23[2];\n    uVar26 = puVar23[3];\n    *puVar22 = *puVar23;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    puVar13 = puVar22 + 4;\n  } while (puVar12 != (undefined4 *)(param_2 + 0xf0));\n  uVar26 = puVar23[5];\n  iVar18 = *(int *)(iVar5 + 0x1a8);\n  puVar22[4] = *puVar12;\n  puVar22[5] = uVar26;\n  if (iVar18 != 0) {\n    uVar26 = (**(code **)(puVar36 + 0x30423c))();\n    *(undefined4 *)(iVar5 + 0x1a8) = uVar26;\n  }\n  if (*(int *)(iVar5 + 0x1ac) != 0) {\n    uVar26 = (**(code **)(puVar36 + 0x304b20))(*(int *)(iVar5 + 0x1ac),0,0,1,param_4);\n    *(undefined4 *)(iVar5 + 0x1a8) = uVar26;\n  }\n  iVar18 = *(int *)((int)pdStack_e8 + 0x14);\n  *(undefined4 *)(iVar5 + 0xec) = 0;\n  *(undefined4 *)(iVar5 + 0xe8) = 0;\n  *(undefined4 *)(iVar5 + 0x1b4) = 0;\n  *(undefined4 *)(iVar5 + 0x1b0) = 0;\n  *(undefined4 *)(iVar5 + 0x240) = 2;\n  if (iVar18 != 0) {\n    iVar18 = *(int *)(puVar36 + 0x303bd0);\n    iVar19 = *(int *)(puVar36 + 0x303bd8);\n    uStack_1d0 = 1;\n    dVar39 = *(double *)(iVar18 + 0x13f8);\n    iVar15 = *(int *)(puVar36 + 0x303bd0);\n    dVar40 = *(double *)(iVar15 + 0x1410);\n    uVar41 = *(undefined8 *)(iVar19 + 0x34a0);\nLAB_000a4e98:\n    iVar29 = *(int *)(pdStack_e8 + 2);\n    if (iVar29 == 1) {\n      iVar29 = 0x28;\n      goto LAB_000a6620;\n    }\n    pdVar6 = (double *)(**(code **)(puVar36 + 0x3047fc))(iVar29 + 2,0x28);\n    if (pdVar6 != (double *)0x0) {\n      iVar32 = iVar29 * 0x28;\n      (**(code **)(puVar36 + 0x304648))(pdVar6,pdStack_e8,iVar32);\n      pdVar7 = pdVar6 + iVar29 * 5;\n      if ((ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8) < dVar39) &&\n         (ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]) < dVar39)) {\n        if (*(int *)(param_2 + 0x248) - 1U < 2) {\n          pdVar8 = pdStack_e8 + 5;\n          do {\n            pdVar21 = pdVar7;\n            pdVar11 = pdVar8;\n            pdVar8 = pdVar11 + 2;\n            uVar28 = *(undefined4 *)(pdVar11 + 1);\n            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n            uVar27 = *(undefined4 *)pdVar11;\n            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);\n            *(undefined4 *)(pdVar21 + 1) = uVar28;\n            *(undefined4 *)pdVar21 = uVar27;\n            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;\n            pdVar7 = pdVar21 + 2;\n          } while (pdVar8 != pdStack_e8 + 9);\n          iVar32 = iVar32 + 0x28;\n          uVar26 = *(undefined4 *)pdVar8;\n          pdVar7 = pdVar6 + iVar29 * 5 + 5;\n          *(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14);\n          *(undefined4 *)(pdVar21 + 2) = uVar26;\n          iVar29 = iVar29 + 1;\n        }\n        iStack_188 = 1;\n        bVar2 = true;\n        bVar1 = iVar29 < 2;\n        *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n        if (bVar1) goto LAB_000a6124;\nLAB_000a4fe8:\n        dVar61 = *(double *)(iVar18 + 0x13f8);\n        dStack_260 = pdVar6[5] - *pdVar6;\n        dStack_258 = pdVar6[6] - pdVar6[1];\n        if ((dVar61 <= ABS(dStack_260)) || (dVar61 <= ABS(dStack_258))) {\n          iVar38 = 1;\n        }\n        else {\n          iVar38 = 1;\n          pdVar7 = pdVar6 + 10;\n          do {\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));\n        }\nLAB_000a5110:\n        uVar4 = iVar29 * 2;\n        pdVar7 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        pdVar8 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        if (pdVar7 == (double *)0x0) {\n          if (pdVar8 != (double *)0x0) {\n            (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n          uVar26 = 0x1c93;\n          goto LAB_000a5724;\n        }\n        if (pdVar8 == (double *)0x0) {\n          (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n          goto LAB_000a6cbc;\n        }\n        if (ABS(dStack_260) < *(double *)(iVar18 + 0x13f8)) {\n          dVar61 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else if (ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)) {\n          dVar52 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }\nLAB_000a51b0:\n        dVar42 = (double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18);\n        iVar16 = *(int *)(param_2 + 0x24c) * *(int *)(param_2 + 0x24c);\n        dVar42 = dVar42 * *(double *)(param_2 + 0x1b0) *\n                 *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400);\n        dVar46 = (double)iVar16;\n        if (iVar16 < 0) {\n          dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418);\n        }\n        dVar46 = dVar46 * dVar42 * dVar42;\n        if (*(int *)(param_2 + 0x244) == 3) {\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            iVar16 = iVar29 + -2;\n            dVar50 = pdVar11[1];\n            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);\n            pdVar21 = pdVar6 + iVar16 * 5;\n            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            dVar50 = pdVar21[1];\n            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            goto LAB_000a5220;\n          }\n        }\n        else {\nLAB_000a5220:\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n        }\n        dVar43 = dVar42 * dVar42;\n        dVar53 = dVar43 / (dVar61 * dVar61 + *(double *)(iVar16 + 0x1438));\n        dVar64 = SQRT(dVar53);\n        if (dVar53 < 0.0) {\n          (**(code **)(puVar36 + 0x304770))();\n        }\n        dVar61 = dVar61 * dVar64;\n        pdVar11 = pdVar6 + iVar38 * 5;\n        dVar58 = *pdVar11;\n        dVar62 = pdVar11[1];\n        dVar57 = dVar61 + pdVar6[1];\n        dVar55 = pdVar6[1] - dVar61;\n        dVar53 = dVar64 + *pdVar6;\n        dStack_238 = dVar62 - dVar61;\n        dStack_240 = dVar58 - dVar64;\n        dVar56 = *pdVar6 - dVar64;\n        dVar51 = dVar56;\n        dVar50 = dVar57;\n        dStack_250 = dVar64 + dVar58;\n        dStack_248 = dVar61 + dVar62;\n        if (0.0 < dVar64 * dStack_258 - dVar61 * dStack_260) {\n          dVar51 = dVar53;\n          dVar50 = dVar55;\n          dVar53 = dVar56;\n          dVar55 = dVar57;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar64 + dVar58;\n          dStack_238 = dVar61 + dVar62;\n        }\n        iVar32 = iVar38 + 1;\n        *pdVar8 = dVar51;\n        pdVar8[1] = dVar55;\n        *pdVar7 = dVar53;\n        pdVar7[1] = dVar50;\n        if (iVar32 < iVar29) {\n          iVar20 = *(int *)(puVar36 + 0x303bd8);\n          iVar33 = 1;\n          iVar35 = 1;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78);\n          dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar4;\n          do {\n            dVar44 = pdVar11[6];\n            dVar47 = pdVar11[5];\n            dVar48 = dVar44 - dVar62;\n            dVar54 = dVar47 - dVar58;\n            dVar49 = dVar47 - dVar58;\n            dVar56 = dStack_238;\n            dVar57 = dStack_240;\n            dVar59 = dStack_248;\n            dVar63 = dStack_250;\n            if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar63;\n            dStack_248 = dVar59;\n            dStack_240 = dVar57;\n            dStack_238 = dVar56;\n            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;\n            pdVar11 = pdVar11 + 5;\n            iVar32 = iVar32 + 1;\n            dVar58 = pdVar6[iVar38 * 5];\n            dVar62 = (pdVar6 + iVar38 * 5)[1];\n          } while( true );\n        }\n        iVar38 = 4;\n        iVar32 = 0x10;\n        iVar35 = 0x10;\n        iVar29 = 2;\n        goto LAB_000a5a70;\n      }\n      bVar1 = iVar29 < 2;\n      iStack_188 = 0;\n      bVar2 = false;\n      *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n      if (!bVar1) goto LAB_000a4fe8;\nLAB_000a6124:\n      if (iVar29 != 1) {\n        iVar38 = 1;\n        dStack_258 = 0.0;\n        dStack_260 = 0.0;\n        goto LAB_000a5110;\n      }\n      iVar38 = 1;\n      dStack_258 = 0.0;\n      iVar16 = *(int *)(param_2 + 0x244);\n      dStack_260 = 0.0;\njoined_r0x000a50f8:\n      if (iVar16 == 2) {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n        if (!bVar2) {\n          iVar38 = iVar38 + -1;\n          goto LAB_000a5110;\n        }\n      }\n      else {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n      }\n      puVar13 = (undefined4 *)(*pcVar37)(0x28);\n      pdVar7 = pdVar6;\n      puVar12 = puVar13;\n      do {\n        puVar22 = puVar12;\n        pdVar8 = pdVar7;\n        pdVar7 = pdVar8 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar8 + 4);\n        uVar27 = *(undefined4 *)(pdVar8 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar8 + 0xc);\n        *puVar22 = *(undefined4 *)pdVar8;\n        puVar22[1] = uVar28;\n        puVar22[2] = uVar27;\n        puVar22[3] = uVar26;\n        puVar12 = puVar22 + 4;\n      } while (pdVar7 != pdVar6 + 4);\n      uVar26 = *(undefined4 *)((int)pdVar8 + 0x14);\n      pcVar37 = *(code **)(puVar36 + 0x3042b0);\n      puVar22[4] = *(undefined4 *)pdVar7;\n      puVar22[5] = uVar26;\n      puVar13[4] = 0;\n      (*pcVar37)(pdVar6);\n      goto LAB_000a61cc;\n    }\n    uVar26 = 0x1c57;\nLAB_000a5724:\n    (**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               uVar26,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);\n    uStack_1d0 = 0;\n    goto LAB_000a5774;\n  }\n  uStack_1d0 = 1;\nLAB_000a5774:\n  pcVar37 = *(code **)(puVar36 + 0x3042d8);\nLAB_000a5778:\n  (*pcVar37)(iVar5);\n  if (*(int *)(iVar17 + 0x3350) != 0) {\n    (**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x16b4,*(int *)(puVar36 + 0x303bd8) + 0x3df8);\n  }\n  return uStack_1d0;\nLAB_000a5a58:\n  iVar29 = iVar35 + 1;\n  iVar35 = iVar35 << 4;\n  iVar32 = iVar33 << 4;\n  iVar38 = iVar33 + 1 + iVar29;\nLAB_000a5a70:\n  pcVar37 = *(code **)(puVar36 + 0x3047fc);\n  iVar38 = iStack_188 * 2 + iVar38;\n  *(double *)((int)pdVar7 + iVar35) = dStack_250;\n  ((double *)((int)pdVar7 + iVar35))[1] = dStack_248;\n  *(double *)((int)pdVar8 + iVar32) = dStack_240;\n  ((double *)((int)pdVar8 + iVar32))[1] = dStack_238;\n  puVar13 = (undefined4 *)(*pcVar37)(iVar38 + 2,0x28);\n  if (puVar13 == (undefined4 *)0x0) {\n    (**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               0x1dbc,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n    uStack_1d0 = 0;\n    goto LAB_000a5774;\n  }\n  pdVar31 = pdVar6 + 4;\n  pdVar11 = pdVar6;\n  puVar12 = puVar13;\n  pdVar21 = pdVar7;\n  puVar22 = puVar13;\n  do {\n    do {\n      puVar23 = puVar12;\n      pdVar10 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar10;\n      puVar12 = puVar23 + 4;\n    } while (pdVar10 != pdVar31);\n    pdVar10 = pdVar21 + 2;\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar23[4] = *(undefined4 *)pdVar31;\n    puVar23[5] = uVar26;\n    uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n    uVar27 = *(undefined4 *)(pdVar21 + 1);\n    uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n    *puVar22 = *(undefined4 *)pdVar21;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    pdVar11 = pdVar6;\n    puVar12 = puVar22 + 10;\n    pdVar21 = pdVar10;\n    puVar22 = puVar22 + 10;\n  } while (pdVar7 + iVar29 * 2 != pdVar10);\n  puVar22 = puVar13 + iVar29 * 10;\n  puVar12 = puVar22;\n  if (bVar2) {\n    do {\n      puVar23 = puVar12;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar12 = puVar23 + 4;\n    } while (pdVar21 != pdVar31);\n    iVar29 = iVar29 + 1;\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar23[4] = *(undefined4 *)(pdVar6 + 4);\n    puVar23[5] = uVar26;\n    uVar28 = puVar13[1];\n    uVar27 = puVar13[2];\n    uVar26 = puVar13[3];\n    puVar12 = puVar13 + iVar29 * 10;\n    *puVar22 = *puVar13;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n  }\n  iStack_188 = iVar38 - iStack_188;\n  if (iVar29 < iStack_188) {\n    pdVar11 = pdVar6;\n    puVar12 = puVar13 + iVar29 * 10;\n    pdVar21 = pdVar8 + ((iStack_188 + 0xfffffff) - iVar29) * 2;\n    puVar23 = puVar13 + iVar29 * 10;\n    do {\n      do {\n        puVar25 = puVar12;\n        pdVar10 = pdVar11 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n        uVar27 = *(undefined4 *)(pdVar11 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n        *puVar25 = *(undefined4 *)pdVar11;\n        puVar25[1] = uVar28;\n        puVar25[2] = uVar27;\n        puVar25[3] = uVar26;\n        pdVar11 = pdVar10;\n        puVar12 = puVar25 + 4;\n      } while (pdVar10 != pdVar31);\n      pdVar10 = pdVar21 + -2;\n      uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n      puVar25[4] = *(undefined4 *)pdVar31;\n      puVar25[5] = uVar26;\n      uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n      uVar27 = *(undefined4 *)(pdVar21 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar21;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar6;\n      puVar12 = puVar23 + 10;\n      pdVar21 = pdVar10;\n      puVar23 = puVar23 + 10;\n    } while (pdVar8 + -2 != pdVar10);\n    puVar12 = puVar13 + iStack_188 * 10;\n    iVar29 = iStack_188;\n  }\n  puVar24 = puVar13 + (iVar29 + 1) * 10;\n  pdVar11 = pdVar6;\n  puVar23 = puVar12;\n  puVar25 = puVar24;\n  if (bVar2) {\n    do {\n      puVar25 = puVar23;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar25 = *(undefined4 *)pdVar11;\n      puVar25[1] = uVar28;\n      puVar25[2] = uVar27;\n      puVar25[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar23 = puVar25 + 4;\n    } while (pdVar21 != pdVar31);\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar25[4] = *(undefined4 *)(pdVar6 + 4);\n    puVar25[5] = uVar26;\n    uVar27 = puVar22[0xb];\n    uVar26 = puVar22[0xc];\n    uVar28 = puVar22[0xd];\n    *puVar12 = puVar22[10];\n    puVar12[1] = uVar27;\n    puVar12[2] = uVar26;\n    puVar12[3] = uVar28;\n    puVar25 = puVar13 + (iVar29 + 1) * 10 + 10;\n    pdVar11 = pdVar6;\n    puVar12 = puVar24;\n    puVar23 = puVar24;\n  }\n  do {\n    puVar22 = puVar12;\n    pdVar21 = pdVar11;\n    pdVar11 = pdVar21 + 2;\n    uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n    uVar27 = *(undefined4 *)(pdVar21 + 1);\n    uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n    *puVar22 = *(undefined4 *)pdVar21;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    puVar12 = puVar22 + 4;\n  } while (pdVar11 != pdVar31);\n  uVar26 = *(undefined4 *)((int)pdVar21 + 0x14);\n  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n  puVar22[4] = *(undefined4 *)pdVar11;\n  puVar22[5] = uVar26;\n  uVar28 = puVar13[1];\n  uVar27 = puVar13[2];\n  uVar26 = puVar13[3];\n  *puVar23 = *puVar13;\n  puVar23[1] = uVar28;\n  puVar23[2] = uVar27;\n  puVar23[3] = uVar26;\n  puVar25[5] = 0;\n  puVar13[4] = iVar38 + 1;\n  (*pcVar37)(pdVar7);\n  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n  (**(code **)(puVar36 + 0x3042b0))(pdVar6);\nLAB_000a61cc:\n  uVar4 = FUN_000a2d58(iVar17,iVar5,puVar13,param_4);\n  uStack_1d0 = uStack_1d0 & uVar4;\n  (**(code **)(puVar36 + 0x3042b0))(puVar13);\n  if (uStack_1d0 == 0) goto LAB_000a5774;\n  iVar32 = *(int *)(pdStack_e8 + 2);\n  iVar29 = iVar32 * 0x28;\n  if ((*(int *)(param_2 + 0x244) == 2) && (*(int *)(pdStack_e8 + 4) == 0)) {\n    uVar4 = FUN_000a4c0c(iVar17,param_2,pdStack_e8,param_4);\n    uVar14 = FUN_000a4c0c(iVar17,param_2,pdStack_e8 + iVar32 * 5 + -5,param_4);\n    uStack_1d0 = uVar4 & uVar14 & 1;\n    iVar29 = *(int *)(pdStack_e8 + 2) * 0x28;\n  }\nLAB_000a6620:\n  pdStack_e8 = (double *)((int)pdStack_e8 + iVar29);\n  if (*(int *)((int)pdStack_e8 + 0x14) == 0) goto code_r0x000a6634;\n  goto LAB_000a4e98;\ncode_r0x000a6634:\n  pcVar37 = *(code **)(puVar36 + 0x3042d8);\n  goto LAB_000a5778;\n}\n\n" (function_definition "uint FUN_000a4c0c(undefined4 param_1,int param_2,undefined4 *param_3,undefined4 param_4)\n\n{\n  bool bVar1;\n  bool bVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  double *pdVar6;\n  double *pdVar7;\n  double *pdVar8;\n  int iVar9;\n  double *pdVar10;\n  double *pdVar11;\n  undefined4 *puVar12;\n  undefined4 *puVar13;\n  uint uVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  int iVar18;\n  int iVar19;\n  int iVar20;\n  double *pdVar21;\n  undefined4 *puVar22;\n  undefined4 *puVar23;\n  undefined4 *puVar24;\n  undefined4 *puVar25;\n  undefined4 uVar26;\n  undefined4 uVar27;\n  undefined4 uVar28;\n  int iVar29;\n  uint uVar30;\n  double *pdVar31;\n  int iVar32;\n  int iVar33;\n  uint uVar34;\n  int iVar35;\n  undefined *puVar36;\n  code *pcVar37;\n  int iVar38;\n  double dVar39;\n  double dVar40;\n  undefined8 uVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  undefined8 uVar45;\n  double dVar46;\n  double dVar47;\n  double dVar48;\n  double dVar49;\n  double dVar50;\n  double dVar51;\n  double dVar52;\n  double dVar53;\n  double dVar54;\n  double dVar55;\n  double dVar56;\n  double dVar57;\n  double dVar58;\n  double dVar59;\n  undefined8 uVar60;\n  double dVar61;\n  double dVar62;\n  double dVar63;\n  double dVar64;\n  double dStack_2b8;\n  double dStack_2b0;\n  double dStack_2a8;\n  double dStack_2a0;\n  double dStack_288;\n  double dStack_280;\n  double dStack_278;\n  double dStack_270;\n  double dStack_260;\n  double dStack_258;\n  double dStack_250;\n  double dStack_248;\n  double dStack_240;\n  double dStack_238;\n  uint uStack_22c;\n  uint uStack_1d0;\n  int iStack_188;\n  double *pdStack_e8;\n  double local_d8 [2];\n  undefined4 local_c8;\n  double local_b0;\n  double local_88;\n  double local_80;\n  double local_58;\n  double adStack_38 [2];\n  undefined4 local_24;\n  int local_c;\n  \n  puVar36 = PTR___stack_chk_guard_003a9230;\n  pdStack_e8 = local_d8;\n  local_c = *(int *)PTR___stack_chk_guard_003a9230;\n  puVar13 = param_3;\n  pdVar6 = pdStack_e8;\n  pdVar7 = pdStack_e8;\n  do {\n    do {\n      pdVar8 = pdVar6;\n      puVar12 = puVar13;\n      puVar13 = puVar12 + 4;\n      uVar28 = puVar12[1];\n      uVar27 = puVar12[2];\n      uVar26 = puVar12[3];\n      *(undefined4 *)pdVar8 = *puVar12;\n      *(undefined4 *)((int)pdVar8 + 4) = uVar28;\n      *(undefined4 *)(pdVar8 + 1) = uVar27;\n      *(undefined4 *)((int)pdVar8 + 0xc) = uVar26;\n      pdVar6 = pdVar8 + 2;\n    } while (puVar13 != param_3 + 8);\n    pdVar7 = pdVar7 + 5;\n    uVar26 = puVar12[5];\n    *(undefined4 *)(pdVar8 + 2) = *puVar13;\n    *(undefined4 *)((int)pdVar8 + 0x14) = uVar26;\n    puVar13 = param_3;\n    pdVar6 = pdVar7;\n  } while (pdVar7 != adStack_38);\n  dVar39 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x47c8);\n  local_24 = 0;\n  local_c8 = 4;\n  local_b0 = local_b0 + dVar39;\n  local_88 = local_88 + dVar39;\n  local_80 = local_80 + dVar39;\n  local_58 = local_58 + dVar39;\n  uVar4 = FUN_000a2d58();\n  if (local_c == *(int *)puVar36) {\n    return uVar4;\n  }\n  iVar17 = local_c;\n  puVar36 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  if (*(int *)(iVar17 + 0x3350) != 0) {\n    (**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x168f,*(int *)(puVar36 + 0x303bd8) + 0x3dd8);\n  }\n  iVar5 = (**(code **)(puVar36 + 0x3044ec))(0,param_2);\n  puVar13 = (undefined4 *)(iVar5 + 0x48);\n  puVar12 = (undefined4 *)(param_2 + 0xa0);\n  do {\n    puVar23 = puVar12;\n    puVar22 = puVar13;\n    puVar12 = puVar23 + 4;\n    uVar28 = puVar23[1];\n    uVar27 = puVar23[2];\n    uVar26 = puVar23[3];\n    *puVar22 = *puVar23;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    puVar13 = puVar22 + 4;\n  } while (puVar12 != (undefined4 *)(param_2 + 0xf0));\n  uVar26 = puVar23[5];\n  iVar18 = *(int *)(iVar5 + 0x1a8);\n  puVar22[4] = *puVar12;\n  puVar22[5] = uVar26;\n  if (iVar18 != 0) {\n    uVar26 = (**(code **)(puVar36 + 0x30423c))();\n    *(undefined4 *)(iVar5 + 0x1a8) = uVar26;\n  }\n  if (*(int *)(iVar5 + 0x1ac) != 0) {\n    uVar26 = (**(code **)(puVar36 + 0x304b20))(*(int *)(iVar5 + 0x1ac),0,0,1,param_4);\n    *(undefined4 *)(iVar5 + 0x1a8) = uVar26;\n  }\n  iVar18 = *(int *)((int)pdStack_e8 + 0x14);\n  *(undefined4 *)(iVar5 + 0xec) = 0;\n  *(undefined4 *)(iVar5 + 0xe8) = 0;\n  *(undefined4 *)(iVar5 + 0x1b4) = 0;\n  *(undefined4 *)(iVar5 + 0x1b0) = 0;\n  *(undefined4 *)(iVar5 + 0x240) = 2;\n  if (iVar18 != 0) {\n    iVar18 = *(int *)(puVar36 + 0x303bd0);\n    iVar19 = *(int *)(puVar36 + 0x303bd8);\n    uStack_1d0 = 1;\n    dVar39 = *(double *)(iVar18 + 0x13f8);\n    iVar15 = *(int *)(puVar36 + 0x303bd0);\n    dVar40 = *(double *)(iVar15 + 0x1410);\n    uVar41 = *(undefined8 *)(iVar19 + 0x34a0);\nLAB_000a4e98:\n    iVar29 = *(int *)(pdStack_e8 + 2);\n    if (iVar29 == 1) {\n      iVar29 = 0x28;\n      goto LAB_000a6620;\n    }\n    pdVar6 = (double *)(**(code **)(puVar36 + 0x3047fc))(iVar29 + 2,0x28);\n    if (pdVar6 != (double *)0x0) {\n      iVar32 = iVar29 * 0x28;\n      (**(code **)(puVar36 + 0x304648))(pdVar6,pdStack_e8,iVar32);\n      pdVar7 = pdVar6 + iVar29 * 5;\n      if ((ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8) < dVar39) &&\n         (ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]) < dVar39)) {\n        if (*(int *)(param_2 + 0x248) - 1U < 2) {\n          pdVar8 = pdStack_e8 + 5;\n          do {\n            pdVar21 = pdVar7;\n            pdVar11 = pdVar8;\n            pdVar8 = pdVar11 + 2;\n            uVar28 = *(undefined4 *)(pdVar11 + 1);\n            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n            uVar27 = *(undefined4 *)pdVar11;\n            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);\n            *(undefined4 *)(pdVar21 + 1) = uVar28;\n            *(undefined4 *)pdVar21 = uVar27;\n            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;\n            pdVar7 = pdVar21 + 2;\n          } while (pdVar8 != pdStack_e8 + 9);\n          iVar32 = iVar32 + 0x28;\n          uVar26 = *(undefined4 *)pdVar8;\n          pdVar7 = pdVar6 + iVar29 * 5 + 5;\n          *(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14);\n          *(undefined4 *)(pdVar21 + 2) = uVar26;\n          iVar29 = iVar29 + 1;\n        }\n        iStack_188 = 1;\n        bVar2 = true;\n        bVar1 = iVar29 < 2;\n        *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n        if (bVar1) goto LAB_000a6124;\nLAB_000a4fe8:\n        dVar61 = *(double *)(iVar18 + 0x13f8);\n        dStack_260 = pdVar6[5] - *pdVar6;\n        dStack_258 = pdVar6[6] - pdVar6[1];\n        if ((dVar61 <= ABS(dStack_260)) || (dVar61 <= ABS(dStack_258))) {\n          iVar38 = 1;\n        }\n        else {\n          iVar38 = 1;\n          pdVar7 = pdVar6 + 10;\n          do {\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));\n        }\nLAB_000a5110:\n        uVar4 = iVar29 * 2;\n        pdVar7 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        pdVar8 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        if (pdVar7 == (double *)0x0) {\n          if (pdVar8 != (double *)0x0) {\n            (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n          uVar26 = 0x1c93;\n          goto LAB_000a5724;\n        }\n        if (pdVar8 == (double *)0x0) {\n          (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n          goto LAB_000a6cbc;\n        }\n        if (ABS(dStack_260) < *(double *)(iVar18 + 0x13f8)) {\n          dVar61 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else if (ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)) {\n          dVar52 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }\nLAB_000a51b0:\n        dVar42 = (double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18);\n        iVar16 = *(int *)(param_2 + 0x24c) * *(int *)(param_2 + 0x24c);\n        dVar42 = dVar42 * *(double *)(param_2 + 0x1b0) *\n                 *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400);\n        dVar46 = (double)iVar16;\n        if (iVar16 < 0) {\n          dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418);\n        }\n        dVar46 = dVar46 * dVar42 * dVar42;\n        if (*(int *)(param_2 + 0x244) == 3) {\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            iVar16 = iVar29 + -2;\n            dVar50 = pdVar11[1];\n            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);\n            pdVar21 = pdVar6 + iVar16 * 5;\n            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            dVar50 = pdVar21[1];\n            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            goto LAB_000a5220;\n          }\n        }\n        else {\nLAB_000a5220:\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n        }\n        dVar43 = dVar42 * dVar42;\n        dVar53 = dVar43 / (dVar61 * dVar61 + *(double *)(iVar16 + 0x1438));\n        dVar64 = SQRT(dVar53);\n        if (dVar53 < 0.0) {\n          (**(code **)(puVar36 + 0x304770))();\n        }\n        dVar61 = dVar61 * dVar64;\n        pdVar11 = pdVar6 + iVar38 * 5;\n        dVar58 = *pdVar11;\n        dVar62 = pdVar11[1];\n        dVar57 = dVar61 + pdVar6[1];\n        dVar55 = pdVar6[1] - dVar61;\n        dVar53 = dVar64 + *pdVar6;\n        dStack_238 = dVar62 - dVar61;\n        dStack_240 = dVar58 - dVar64;\n        dVar56 = *pdVar6 - dVar64;\n        dVar51 = dVar56;\n        dVar50 = dVar57;\n        dStack_250 = dVar64 + dVar58;\n        dStack_248 = dVar61 + dVar62;\n        if (0.0 < dVar64 * dStack_258 - dVar61 * dStack_260) {\n          dVar51 = dVar53;\n          dVar50 = dVar55;\n          dVar53 = dVar56;\n          dVar55 = dVar57;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar64 + dVar58;\n          dStack_238 = dVar61 + dVar62;\n        }\n        iVar32 = iVar38 + 1;\n        *pdVar8 = dVar51;\n        pdVar8[1] = dVar55;\n        *pdVar7 = dVar53;\n        pdVar7[1] = dVar50;\n        if (iVar32 < iVar29) {\n          iVar20 = *(int *)(puVar36 + 0x303bd8);\n          iVar33 = 1;\n          iVar35 = 1;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78);\n          dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar4;\n          do {\n            dVar44 = pdVar11[6];\n            dVar47 = pdVar11[5];\n            dVar48 = dVar44 - dVar62;\n            dVar54 = dVar47 - dVar58;\n            dVar49 = dVar47 - dVar58;\n            dVar56 = dStack_238;\n            dVar57 = dStack_240;\n            dVar59 = dStack_248;\n            dVar63 = dStack_250;\n            if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar63;\n            dStack_248 = dVar59;\n            dStack_240 = dVar57;\n            dStack_238 = dVar56;\n            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;\n            pdVar11 = pdVar11 + 5;\n            iVar32 = iVar32 + 1;\n            dVar58 = pdVar6[iVar38 * 5];\n            dVar62 = (pdVar6 + iVar38 * 5)[1];\n          } while( true );\n        }\n        iVar38 = 4;\n        iVar32 = 0x10;\n        iVar35 = 0x10;\n        iVar29 = 2;\n        goto LAB_000a5a70;\n      }\n      bVar1 = iVar29 < 2;\n      iStack_188 = 0;\n      bVar2 = false;\n      *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n      if (!bVar1) goto LAB_000a4fe8;\nLAB_000a6124:\n      if (iVar29 != 1) {\n        iVar38 = 1;\n        dStack_258 = 0.0;\n        dStack_260 = 0.0;\n        goto LAB_000a5110;\n      }\n      iVar38 = 1;\n      dStack_258 = 0.0;\n      iVar16 = *(int *)(param_2 + 0x244);\n      dStack_260 = 0.0;\njoined_r0x000a50f8:\n      if (iVar16 == 2) {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n        if (!bVar2) {\n          iVar38 = iVar38 + -1;\n          goto LAB_000a5110;\n        }\n      }\n      else {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n      }\n      puVar13 = (undefined4 *)(*pcVar37)(0x28);\n      pdVar7 = pdVar6;\n      puVar12 = puVar13;\n      do {\n        puVar22 = puVar12;\n        pdVar8 = pdVar7;\n        pdVar7 = pdVar8 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar8 + 4);\n        uVar27 = *(undefined4 *)(pdVar8 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar8 + 0xc);\n        *puVar22 = *(undefined4 *)pdVar8;\n        puVar22[1] = uVar28;\n        puVar22[2] = uVar27;\n        puVar22[3] = uVar26;\n        puVar12 = puVar22 + 4;\n      } while (pdVar7 != pdVar6 + 4);\n      uVar26 = *(undefined4 *)((int)pdVar8 + 0x14);\n      pcVar37 = *(code **)(puVar36 + 0x3042b0);\n      puVar22[4] = *(undefined4 *)pdVar7;\n      puVar22[5] = uVar26;\n      puVar13[4] = 0;\n      (*pcVar37)(pdVar6);\n      goto LAB_000a61cc;\n    }\n    uVar26 = 0x1c57;\nLAB_000a5724:\n    (**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               uVar26,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);\n    uStack_1d0 = 0;\n    goto LAB_000a5774;\n  }\n  uStack_1d0 = 1;\nLAB_000a5774:\n  pcVar37 = *(code **)(puVar36 + 0x3042d8);\nLAB_000a5778:\n  (*pcVar37)(iVar5);\n  if (*(int *)(iVar17 + 0x3350) != 0) {\n    (**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x16b4,*(int *)(puVar36 + 0x303bd8) + 0x3df8);\n  }\n  return uStack_1d0;\nLAB_000a5a58:\n  iVar29 = iVar35 + 1;\n  iVar35 = iVar35 << 4;\n  iVar32 = iVar33 << 4;\n  iVar38 = iVar33 + 1 + iVar29;\nLAB_000a5a70:\n  pcVar37 = *(code **)(puVar36 + 0x3047fc);\n  iVar38 = iStack_188 * 2 + iVar38;\n  *(double *)((int)pdVar7 + iVar35) = dStack_250;\n  ((double *)((int)pdVar7 + iVar35))[1] = dStack_248;\n  *(double *)((int)pdVar8 + iVar32) = dStack_240;\n  ((double *)((int)pdVar8 + iVar32))[1] = dStack_238;\n  puVar13 = (undefined4 *)(*pcVar37)(iVar38 + 2,0x28);\n  if (puVar13 == (undefined4 *)0x0) {\n    (**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               0x1dbc,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n    uStack_1d0 = 0;\n    goto LAB_000a5774;\n  }\n  pdVar31 = pdVar6 + 4;\n  pdVar11 = pdVar6;\n  puVar12 = puVar13;\n  pdVar21 = pdVar7;\n  puVar22 = puVar13;\n  do {\n    do {\n      puVar23 = puVar12;\n      pdVar10 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar10;\n      puVar12 = puVar23 + 4;\n    } while (pdVar10 != pdVar31);\n    pdVar10 = pdVar21 + 2;\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar23[4] = *(undefined4 *)pdVar31;\n    puVar23[5] = uVar26;\n    uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n    uVar27 = *(undefined4 *)(pdVar21 + 1);\n    uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n    *puVar22 = *(undefined4 *)pdVar21;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    pdVar11 = pdVar6;\n    puVar12 = puVar22 + 10;\n    pdVar21 = pdVar10;\n    puVar22 = puVar22 + 10;\n  } while (pdVar7 + iVar29 * 2 != pdVar10);\n  puVar22 = puVar13 + iVar29 * 10;\n  puVar12 = puVar22;\n  if (bVar2) {\n    do {\n      puVar23 = puVar12;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar12 = puVar23 + 4;\n    } while (pdVar21 != pdVar31);\n    iVar29 = iVar29 + 1;\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar23[4] = *(undefined4 *)(pdVar6 + 4);\n    puVar23[5] = uVar26;\n    uVar28 = puVar13[1];\n    uVar27 = puVar13[2];\n    uVar26 = puVar13[3];\n    puVar12 = puVar13 + iVar29 * 10;\n    *puVar22 = *puVar13;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n  }\n  iStack_188 = iVar38 - iStack_188;\n  if (iVar29 < iStack_188) {\n    pdVar11 = pdVar6;\n    puVar12 = puVar13 + iVar29 * 10;\n    pdVar21 = pdVar8 + ((iStack_188 + 0xfffffff) - iVar29) * 2;\n    puVar23 = puVar13 + iVar29 * 10;\n    do {\n      do {\n        puVar25 = puVar12;\n        pdVar10 = pdVar11 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n        uVar27 = *(undefined4 *)(pdVar11 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n        *puVar25 = *(undefined4 *)pdVar11;\n        puVar25[1] = uVar28;\n        puVar25[2] = uVar27;\n        puVar25[3] = uVar26;\n        pdVar11 = pdVar10;\n        puVar12 = puVar25 + 4;\n      } while (pdVar10 != pdVar31);\n      pdVar10 = pdVar21 + -2;\n      uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n      puVar25[4] = *(undefined4 *)pdVar31;\n      puVar25[5] = uVar26;\n      uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n      uVar27 = *(undefined4 *)(pdVar21 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar21;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar6;\n      puVar12 = puVar23 + 10;\n      pdVar21 = pdVar10;\n      puVar23 = puVar23 + 10;\n    } while (pdVar8 + -2 != pdVar10);\n    puVar12 = puVar13 + iStack_188 * 10;\n    iVar29 = iStack_188;\n  }\n  puVar24 = puVar13 + (iVar29 + 1) * 10;\n  pdVar11 = pdVar6;\n  puVar23 = puVar12;\n  puVar25 = puVar24;\n  if (bVar2) {\n    do {\n      puVar25 = puVar23;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar25 = *(undefined4 *)pdVar11;\n      puVar25[1] = uVar28;\n      puVar25[2] = uVar27;\n      puVar25[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar23 = puVar25 + 4;\n    } while (pdVar21 != pdVar31);\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar25[4] = *(undefined4 *)(pdVar6 + 4);\n    puVar25[5] = uVar26;\n    uVar27 = puVar22[0xb];\n    uVar26 = puVar22[0xc];\n    uVar28 = puVar22[0xd];\n    *puVar12 = puVar22[10];\n    puVar12[1] = uVar27;\n    puVar12[2] = uVar26;\n    puVar12[3] = uVar28;\n    puVar25 = puVar13 + (iVar29 + 1) * 10 + 10;\n    pdVar11 = pdVar6;\n    puVar12 = puVar24;\n    puVar23 = puVar24;\n  }\n  do {\n    puVar22 = puVar12;\n    pdVar21 = pdVar11;\n    pdVar11 = pdVar21 + 2;\n    uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n    uVar27 = *(undefined4 *)(pdVar21 + 1);\n    uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n    *puVar22 = *(undefined4 *)pdVar21;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    puVar12 = puVar22 + 4;\n  } while (pdVar11 != pdVar31);\n  uVar26 = *(undefined4 *)((int)pdVar21 + 0x14);\n  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n  puVar22[4] = *(undefined4 *)pdVar11;\n  puVar22[5] = uVar26;\n  uVar28 = puVar13[1];\n  uVar27 = puVar13[2];\n  uVar26 = puVar13[3];\n  *puVar23 = *puVar13;\n  puVar23[1] = uVar28;\n  puVar23[2] = uVar27;\n  puVar23[3] = uVar26;\n  puVar25[5] = 0;\n  puVar13[4] = iVar38 + 1;\n  (*pcVar37)(pdVar7);\n  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n  (**(code **)(puVar36 + 0x3042b0))(pdVar6);\nLAB_000a61cc:\n  uVar4 = FUN_000a2d58(iVar17,iVar5,puVar13,param_4);\n  uStack_1d0 = uStack_1d0 & uVar4;\n  (**(code **)(puVar36 + 0x3042b0))(puVar13);\n  if (uStack_1d0 == 0) goto LAB_000a5774;\n  iVar32 = *(int *)(pdStack_e8 + 2);\n  iVar29 = iVar32 * 0x28;\n  if ((*(int *)(param_2 + 0x244) == 2) && (*(int *)(pdStack_e8 + 4) == 0)) {\n    uVar4 = FUN_000a4c0c(iVar17,param_2,pdStack_e8,param_4);\n    uVar14 = FUN_000a4c0c(iVar17,param_2,pdStack_e8 + iVar32 * 5 + -5,param_4);\n    uStack_1d0 = uVar4 & uVar14 & 1;\n    iVar29 = *(int *)(pdStack_e8 + 2) * 0x28;\n  }\nLAB_000a6620:\n  pdStack_e8 = (double *)((int)pdStack_e8 + iVar29);\n  if (*(int *)((int)pdStack_e8 + 0x14) == 0) goto code_r0x000a6634;\n  goto LAB_000a4e98;\ncode_r0x000a6634:\n  pcVar37 = *(code **)(puVar36 + 0x3042d8);\n  goto LAB_000a5778;\n}" type_identifier (function_declarator "FUN_000a4c0c(undefined4 param_1,int param_2,undefined4 *param_3,undefined4 param_4)" identifier (parameter_list "(undefined4 param_1,int param_2,undefined4 *param_3,undefined4 param_4)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "undefined4 param_4" type_identifier identifier) ))) (compound_statement "{\n  bool bVar1;\n  bool bVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  double *pdVar6;\n  double *pdVar7;\n  double *pdVar8;\n  int iVar9;\n  double *pdVar10;\n  double *pdVar11;\n  undefined4 *puVar12;\n  undefined4 *puVar13;\n  uint uVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  int iVar18;\n  int iVar19;\n  int iVar20;\n  double *pdVar21;\n  undefined4 *puVar22;\n  undefined4 *puVar23;\n  undefined4 *puVar24;\n  undefined4 *puVar25;\n  undefined4 uVar26;\n  undefined4 uVar27;\n  undefined4 uVar28;\n  int iVar29;\n  uint uVar30;\n  double *pdVar31;\n  int iVar32;\n  int iVar33;\n  uint uVar34;\n  int iVar35;\n  undefined *puVar36;\n  code *pcVar37;\n  int iVar38;\n  double dVar39;\n  double dVar40;\n  undefined8 uVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  undefined8 uVar45;\n  double dVar46;\n  double dVar47;\n  double dVar48;\n  double dVar49;\n  double dVar50;\n  double dVar51;\n  double dVar52;\n  double dVar53;\n  double dVar54;\n  double dVar55;\n  double dVar56;\n  double dVar57;\n  double dVar58;\n  double dVar59;\n  undefined8 uVar60;\n  double dVar61;\n  double dVar62;\n  double dVar63;\n  double dVar64;\n  double dStack_2b8;\n  double dStack_2b0;\n  double dStack_2a8;\n  double dStack_2a0;\n  double dStack_288;\n  double dStack_280;\n  double dStack_278;\n  double dStack_270;\n  double dStack_260;\n  double dStack_258;\n  double dStack_250;\n  double dStack_248;\n  double dStack_240;\n  double dStack_238;\n  uint uStack_22c;\n  uint uStack_1d0;\n  int iStack_188;\n  double *pdStack_e8;\n  double local_d8 [2];\n  undefined4 local_c8;\n  double local_b0;\n  double local_88;\n  double local_80;\n  double local_58;\n  double adStack_38 [2];\n  undefined4 local_24;\n  int local_c;\n  \n  puVar36 = PTR___stack_chk_guard_003a9230;\n  pdStack_e8 = local_d8;\n  local_c = *(int *)PTR___stack_chk_guard_003a9230;\n  puVar13 = param_3;\n  pdVar6 = pdStack_e8;\n  pdVar7 = pdStack_e8;\n  do {\n    do {\n      pdVar8 = pdVar6;\n      puVar12 = puVar13;\n      puVar13 = puVar12 + 4;\n      uVar28 = puVar12[1];\n      uVar27 = puVar12[2];\n      uVar26 = puVar12[3];\n      *(undefined4 *)pdVar8 = *puVar12;\n      *(undefined4 *)((int)pdVar8 + 4) = uVar28;\n      *(undefined4 *)(pdVar8 + 1) = uVar27;\n      *(undefined4 *)((int)pdVar8 + 0xc) = uVar26;\n      pdVar6 = pdVar8 + 2;\n    } while (puVar13 != param_3 + 8);\n    pdVar7 = pdVar7 + 5;\n    uVar26 = puVar12[5];\n    *(undefined4 *)(pdVar8 + 2) = *puVar13;\n    *(undefined4 *)((int)pdVar8 + 0x14) = uVar26;\n    puVar13 = param_3;\n    pdVar6 = pdVar7;\n  } while (pdVar7 != adStack_38);\n  dVar39 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x47c8);\n  local_24 = 0;\n  local_c8 = 4;\n  local_b0 = local_b0 + dVar39;\n  local_88 = local_88 + dVar39;\n  local_80 = local_80 + dVar39;\n  local_58 = local_58 + dVar39;\n  uVar4 = FUN_000a2d58();\n  if (local_c == *(int *)puVar36) {\n    return uVar4;\n  }\n  iVar17 = local_c;\n  puVar36 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  if (*(int *)(iVar17 + 0x3350) != 0) {\n    (**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x168f,*(int *)(puVar36 + 0x303bd8) + 0x3dd8);\n  }\n  iVar5 = (**(code **)(puVar36 + 0x3044ec))(0,param_2);\n  puVar13 = (undefined4 *)(iVar5 + 0x48);\n  puVar12 = (undefined4 *)(param_2 + 0xa0);\n  do {\n    puVar23 = puVar12;\n    puVar22 = puVar13;\n    puVar12 = puVar23 + 4;\n    uVar28 = puVar23[1];\n    uVar27 = puVar23[2];\n    uVar26 = puVar23[3];\n    *puVar22 = *puVar23;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    puVar13 = puVar22 + 4;\n  } while (puVar12 != (undefined4 *)(param_2 + 0xf0));\n  uVar26 = puVar23[5];\n  iVar18 = *(int *)(iVar5 + 0x1a8);\n  puVar22[4] = *puVar12;\n  puVar22[5] = uVar26;\n  if (iVar18 != 0) {\n    uVar26 = (**(code **)(puVar36 + 0x30423c))();\n    *(undefined4 *)(iVar5 + 0x1a8) = uVar26;\n  }\n  if (*(int *)(iVar5 + 0x1ac) != 0) {\n    uVar26 = (**(code **)(puVar36 + 0x304b20))(*(int *)(iVar5 + 0x1ac),0,0,1,param_4);\n    *(undefined4 *)(iVar5 + 0x1a8) = uVar26;\n  }\n  iVar18 = *(int *)((int)pdStack_e8 + 0x14);\n  *(undefined4 *)(iVar5 + 0xec) = 0;\n  *(undefined4 *)(iVar5 + 0xe8) = 0;\n  *(undefined4 *)(iVar5 + 0x1b4) = 0;\n  *(undefined4 *)(iVar5 + 0x1b0) = 0;\n  *(undefined4 *)(iVar5 + 0x240) = 2;\n  if (iVar18 != 0) {\n    iVar18 = *(int *)(puVar36 + 0x303bd0);\n    iVar19 = *(int *)(puVar36 + 0x303bd8);\n    uStack_1d0 = 1;\n    dVar39 = *(double *)(iVar18 + 0x13f8);\n    iVar15 = *(int *)(puVar36 + 0x303bd0);\n    dVar40 = *(double *)(iVar15 + 0x1410);\n    uVar41 = *(undefined8 *)(iVar19 + 0x34a0);\nLAB_000a4e98:\n    iVar29 = *(int *)(pdStack_e8 + 2);\n    if (iVar29 == 1) {\n      iVar29 = 0x28;\n      goto LAB_000a6620;\n    }\n    pdVar6 = (double *)(**(code **)(puVar36 + 0x3047fc))(iVar29 + 2,0x28);\n    if (pdVar6 != (double *)0x0) {\n      iVar32 = iVar29 * 0x28;\n      (**(code **)(puVar36 + 0x304648))(pdVar6,pdStack_e8,iVar32);\n      pdVar7 = pdVar6 + iVar29 * 5;\n      if ((ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8) < dVar39) &&\n         (ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]) < dVar39)) {\n        if (*(int *)(param_2 + 0x248) - 1U < 2) {\n          pdVar8 = pdStack_e8 + 5;\n          do {\n            pdVar21 = pdVar7;\n            pdVar11 = pdVar8;\n            pdVar8 = pdVar11 + 2;\n            uVar28 = *(undefined4 *)(pdVar11 + 1);\n            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n            uVar27 = *(undefined4 *)pdVar11;\n            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);\n            *(undefined4 *)(pdVar21 + 1) = uVar28;\n            *(undefined4 *)pdVar21 = uVar27;\n            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;\n            pdVar7 = pdVar21 + 2;\n          } while (pdVar8 != pdStack_e8 + 9);\n          iVar32 = iVar32 + 0x28;\n          uVar26 = *(undefined4 *)pdVar8;\n          pdVar7 = pdVar6 + iVar29 * 5 + 5;\n          *(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14);\n          *(undefined4 *)(pdVar21 + 2) = uVar26;\n          iVar29 = iVar29 + 1;\n        }\n        iStack_188 = 1;\n        bVar2 = true;\n        bVar1 = iVar29 < 2;\n        *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n        if (bVar1) goto LAB_000a6124;\nLAB_000a4fe8:\n        dVar61 = *(double *)(iVar18 + 0x13f8);\n        dStack_260 = pdVar6[5] - *pdVar6;\n        dStack_258 = pdVar6[6] - pdVar6[1];\n        if ((dVar61 <= ABS(dStack_260)) || (dVar61 <= ABS(dStack_258))) {\n          iVar38 = 1;\n        }\n        else {\n          iVar38 = 1;\n          pdVar7 = pdVar6 + 10;\n          do {\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));\n        }\nLAB_000a5110:\n        uVar4 = iVar29 * 2;\n        pdVar7 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        pdVar8 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        if (pdVar7 == (double *)0x0) {\n          if (pdVar8 != (double *)0x0) {\n            (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n          uVar26 = 0x1c93;\n          goto LAB_000a5724;\n        }\n        if (pdVar8 == (double *)0x0) {\n          (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n          goto LAB_000a6cbc;\n        }\n        if (ABS(dStack_260) < *(double *)(iVar18 + 0x13f8)) {\n          dVar61 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else if (ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)) {\n          dVar52 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }\nLAB_000a51b0:\n        dVar42 = (double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18);\n        iVar16 = *(int *)(param_2 + 0x24c) * *(int *)(param_2 + 0x24c);\n        dVar42 = dVar42 * *(double *)(param_2 + 0x1b0) *\n                 *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400);\n        dVar46 = (double)iVar16;\n        if (iVar16 < 0) {\n          dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418);\n        }\n        dVar46 = dVar46 * dVar42 * dVar42;\n        if (*(int *)(param_2 + 0x244) == 3) {\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            iVar16 = iVar29 + -2;\n            dVar50 = pdVar11[1];\n            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);\n            pdVar21 = pdVar6 + iVar16 * 5;\n            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            dVar50 = pdVar21[1];\n            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            goto LAB_000a5220;\n          }\n        }\n        else {\nLAB_000a5220:\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n        }\n        dVar43 = dVar42 * dVar42;\n        dVar53 = dVar43 / (dVar61 * dVar61 + *(double *)(iVar16 + 0x1438));\n        dVar64 = SQRT(dVar53);\n        if (dVar53 < 0.0) {\n          (**(code **)(puVar36 + 0x304770))();\n        }\n        dVar61 = dVar61 * dVar64;\n        pdVar11 = pdVar6 + iVar38 * 5;\n        dVar58 = *pdVar11;\n        dVar62 = pdVar11[1];\n        dVar57 = dVar61 + pdVar6[1];\n        dVar55 = pdVar6[1] - dVar61;\n        dVar53 = dVar64 + *pdVar6;\n        dStack_238 = dVar62 - dVar61;\n        dStack_240 = dVar58 - dVar64;\n        dVar56 = *pdVar6 - dVar64;\n        dVar51 = dVar56;\n        dVar50 = dVar57;\n        dStack_250 = dVar64 + dVar58;\n        dStack_248 = dVar61 + dVar62;\n        if (0.0 < dVar64 * dStack_258 - dVar61 * dStack_260) {\n          dVar51 = dVar53;\n          dVar50 = dVar55;\n          dVar53 = dVar56;\n          dVar55 = dVar57;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar64 + dVar58;\n          dStack_238 = dVar61 + dVar62;\n        }\n        iVar32 = iVar38 + 1;\n        *pdVar8 = dVar51;\n        pdVar8[1] = dVar55;\n        *pdVar7 = dVar53;\n        pdVar7[1] = dVar50;\n        if (iVar32 < iVar29) {\n          iVar20 = *(int *)(puVar36 + 0x303bd8);\n          iVar33 = 1;\n          iVar35 = 1;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78);\n          dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar4;\n          do {\n            dVar44 = pdVar11[6];\n            dVar47 = pdVar11[5];\n            dVar48 = dVar44 - dVar62;\n            dVar54 = dVar47 - dVar58;\n            dVar49 = dVar47 - dVar58;\n            dVar56 = dStack_238;\n            dVar57 = dStack_240;\n            dVar59 = dStack_248;\n            dVar63 = dStack_250;\n            if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar63;\n            dStack_248 = dVar59;\n            dStack_240 = dVar57;\n            dStack_238 = dVar56;\n            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;\n            pdVar11 = pdVar11 + 5;\n            iVar32 = iVar32 + 1;\n            dVar58 = pdVar6[iVar38 * 5];\n            dVar62 = (pdVar6 + iVar38 * 5)[1];\n          } while( true );\n        }\n        iVar38 = 4;\n        iVar32 = 0x10;\n        iVar35 = 0x10;\n        iVar29 = 2;\n        goto LAB_000a5a70;\n      }\n      bVar1 = iVar29 < 2;\n      iStack_188 = 0;\n      bVar2 = false;\n      *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n      if (!bVar1) goto LAB_000a4fe8;\nLAB_000a6124:\n      if (iVar29 != 1) {\n        iVar38 = 1;\n        dStack_258 = 0.0;\n        dStack_260 = 0.0;\n        goto LAB_000a5110;\n      }\n      iVar38 = 1;\n      dStack_258 = 0.0;\n      iVar16 = *(int *)(param_2 + 0x244);\n      dStack_260 = 0.0;\njoined_r0x000a50f8:\n      if (iVar16 == 2) {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n        if (!bVar2) {\n          iVar38 = iVar38 + -1;\n          goto LAB_000a5110;\n        }\n      }\n      else {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n      }\n      puVar13 = (undefined4 *)(*pcVar37)(0x28);\n      pdVar7 = pdVar6;\n      puVar12 = puVar13;\n      do {\n        puVar22 = puVar12;\n        pdVar8 = pdVar7;\n        pdVar7 = pdVar8 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar8 + 4);\n        uVar27 = *(undefined4 *)(pdVar8 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar8 + 0xc);\n        *puVar22 = *(undefined4 *)pdVar8;\n        puVar22[1] = uVar28;\n        puVar22[2] = uVar27;\n        puVar22[3] = uVar26;\n        puVar12 = puVar22 + 4;\n      } while (pdVar7 != pdVar6 + 4);\n      uVar26 = *(undefined4 *)((int)pdVar8 + 0x14);\n      pcVar37 = *(code **)(puVar36 + 0x3042b0);\n      puVar22[4] = *(undefined4 *)pdVar7;\n      puVar22[5] = uVar26;\n      puVar13[4] = 0;\n      (*pcVar37)(pdVar6);\n      goto LAB_000a61cc;\n    }\n    uVar26 = 0x1c57;\nLAB_000a5724:\n    (**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               uVar26,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);\n    uStack_1d0 = 0;\n    goto LAB_000a5774;\n  }\n  uStack_1d0 = 1;\nLAB_000a5774:\n  pcVar37 = *(code **)(puVar36 + 0x3042d8);\nLAB_000a5778:\n  (*pcVar37)(iVar5);\n  if (*(int *)(iVar17 + 0x3350) != 0) {\n    (**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x16b4,*(int *)(puVar36 + 0x303bd8) + 0x3df8);\n  }\n  return uStack_1d0;\nLAB_000a5a58:\n  iVar29 = iVar35 + 1;\n  iVar35 = iVar35 << 4;\n  iVar32 = iVar33 << 4;\n  iVar38 = iVar33 + 1 + iVar29;\nLAB_000a5a70:\n  pcVar37 = *(code **)(puVar36 + 0x3047fc);\n  iVar38 = iStack_188 * 2 + iVar38;\n  *(double *)((int)pdVar7 + iVar35) = dStack_250;\n  ((double *)((int)pdVar7 + iVar35))[1] = dStack_248;\n  *(double *)((int)pdVar8 + iVar32) = dStack_240;\n  ((double *)((int)pdVar8 + iVar32))[1] = dStack_238;\n  puVar13 = (undefined4 *)(*pcVar37)(iVar38 + 2,0x28);\n  if (puVar13 == (undefined4 *)0x0) {\n    (**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               0x1dbc,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n    uStack_1d0 = 0;\n    goto LAB_000a5774;\n  }\n  pdVar31 = pdVar6 + 4;\n  pdVar11 = pdVar6;\n  puVar12 = puVar13;\n  pdVar21 = pdVar7;\n  puVar22 = puVar13;\n  do {\n    do {\n      puVar23 = puVar12;\n      pdVar10 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar10;\n      puVar12 = puVar23 + 4;\n    } while (pdVar10 != pdVar31);\n    pdVar10 = pdVar21 + 2;\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar23[4] = *(undefined4 *)pdVar31;\n    puVar23[5] = uVar26;\n    uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n    uVar27 = *(undefined4 *)(pdVar21 + 1);\n    uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n    *puVar22 = *(undefined4 *)pdVar21;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    pdVar11 = pdVar6;\n    puVar12 = puVar22 + 10;\n    pdVar21 = pdVar10;\n    puVar22 = puVar22 + 10;\n  } while (pdVar7 + iVar29 * 2 != pdVar10);\n  puVar22 = puVar13 + iVar29 * 10;\n  puVar12 = puVar22;\n  if (bVar2) {\n    do {\n      puVar23 = puVar12;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar12 = puVar23 + 4;\n    } while (pdVar21 != pdVar31);\n    iVar29 = iVar29 + 1;\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar23[4] = *(undefined4 *)(pdVar6 + 4);\n    puVar23[5] = uVar26;\n    uVar28 = puVar13[1];\n    uVar27 = puVar13[2];\n    uVar26 = puVar13[3];\n    puVar12 = puVar13 + iVar29 * 10;\n    *puVar22 = *puVar13;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n  }\n  iStack_188 = iVar38 - iStack_188;\n  if (iVar29 < iStack_188) {\n    pdVar11 = pdVar6;\n    puVar12 = puVar13 + iVar29 * 10;\n    pdVar21 = pdVar8 + ((iStack_188 + 0xfffffff) - iVar29) * 2;\n    puVar23 = puVar13 + iVar29 * 10;\n    do {\n      do {\n        puVar25 = puVar12;\n        pdVar10 = pdVar11 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n        uVar27 = *(undefined4 *)(pdVar11 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n        *puVar25 = *(undefined4 *)pdVar11;\n        puVar25[1] = uVar28;\n        puVar25[2] = uVar27;\n        puVar25[3] = uVar26;\n        pdVar11 = pdVar10;\n        puVar12 = puVar25 + 4;\n      } while (pdVar10 != pdVar31);\n      pdVar10 = pdVar21 + -2;\n      uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n      puVar25[4] = *(undefined4 *)pdVar31;\n      puVar25[5] = uVar26;\n      uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n      uVar27 = *(undefined4 *)(pdVar21 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar21;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar6;\n      puVar12 = puVar23 + 10;\n      pdVar21 = pdVar10;\n      puVar23 = puVar23 + 10;\n    } while (pdVar8 + -2 != pdVar10);\n    puVar12 = puVar13 + iStack_188 * 10;\n    iVar29 = iStack_188;\n  }\n  puVar24 = puVar13 + (iVar29 + 1) * 10;\n  pdVar11 = pdVar6;\n  puVar23 = puVar12;\n  puVar25 = puVar24;\n  if (bVar2) {\n    do {\n      puVar25 = puVar23;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar25 = *(undefined4 *)pdVar11;\n      puVar25[1] = uVar28;\n      puVar25[2] = uVar27;\n      puVar25[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar23 = puVar25 + 4;\n    } while (pdVar21 != pdVar31);\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar25[4] = *(undefined4 *)(pdVar6 + 4);\n    puVar25[5] = uVar26;\n    uVar27 = puVar22[0xb];\n    uVar26 = puVar22[0xc];\n    uVar28 = puVar22[0xd];\n    *puVar12 = puVar22[10];\n    puVar12[1] = uVar27;\n    puVar12[2] = uVar26;\n    puVar12[3] = uVar28;\n    puVar25 = puVar13 + (iVar29 + 1) * 10 + 10;\n    pdVar11 = pdVar6;\n    puVar12 = puVar24;\n    puVar23 = puVar24;\n  }\n  do {\n    puVar22 = puVar12;\n    pdVar21 = pdVar11;\n    pdVar11 = pdVar21 + 2;\n    uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n    uVar27 = *(undefined4 *)(pdVar21 + 1);\n    uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n    *puVar22 = *(undefined4 *)pdVar21;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    puVar12 = puVar22 + 4;\n  } while (pdVar11 != pdVar31);\n  uVar26 = *(undefined4 *)((int)pdVar21 + 0x14);\n  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n  puVar22[4] = *(undefined4 *)pdVar11;\n  puVar22[5] = uVar26;\n  uVar28 = puVar13[1];\n  uVar27 = puVar13[2];\n  uVar26 = puVar13[3];\n  *puVar23 = *puVar13;\n  puVar23[1] = uVar28;\n  puVar23[2] = uVar27;\n  puVar23[3] = uVar26;\n  puVar25[5] = 0;\n  puVar13[4] = iVar38 + 1;\n  (*pcVar37)(pdVar7);\n  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n  (**(code **)(puVar36 + 0x3042b0))(pdVar6);\nLAB_000a61cc:\n  uVar4 = FUN_000a2d58(iVar17,iVar5,puVar13,param_4);\n  uStack_1d0 = uStack_1d0 & uVar4;\n  (**(code **)(puVar36 + 0x3042b0))(puVar13);\n  if (uStack_1d0 == 0) goto LAB_000a5774;\n  iVar32 = *(int *)(pdStack_e8 + 2);\n  iVar29 = iVar32 * 0x28;\n  if ((*(int *)(param_2 + 0x244) == 2) && (*(int *)(pdStack_e8 + 4) == 0)) {\n    uVar4 = FUN_000a4c0c(iVar17,param_2,pdStack_e8,param_4);\n    uVar14 = FUN_000a4c0c(iVar17,param_2,pdStack_e8 + iVar32 * 5 + -5,param_4);\n    uStack_1d0 = uVar4 & uVar14 & 1;\n    iVar29 = *(int *)(pdStack_e8 + 2) * 0x28;\n  }\nLAB_000a6620:\n  pdStack_e8 = (double *)((int)pdStack_e8 + iVar29);\n  if (*(int *)((int)pdStack_e8 + 0x14) == 0) goto code_r0x000a6634;\n  goto LAB_000a4e98;\ncode_r0x000a6634:\n  pcVar37 = *(code **)(puVar36 + 0x3042d8);\n  goto LAB_000a5778;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "double *pdVar6;" primitive_type (pointer_declarator "*pdVar6" * identifier) ;) (declaration "double *pdVar7;" primitive_type (pointer_declarator "*pdVar7" * identifier) ;) (declaration "double *pdVar8;" primitive_type (pointer_declarator "*pdVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "double *pdVar10;" primitive_type (pointer_declarator "*pdVar10" * identifier) ;) (declaration "double *pdVar11;" primitive_type (pointer_declarator "*pdVar11" * identifier) ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "double *pdVar21;" primitive_type (pointer_declarator "*pdVar21" * identifier) ;) (declaration "undefined4 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "undefined4 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "undefined4 *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "undefined4 *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "undefined4 uVar26;" type_identifier identifier ;) (declaration "undefined4 uVar27;" type_identifier identifier ;) (declaration "undefined4 uVar28;" type_identifier identifier ;) (declaration "int iVar29;" primitive_type identifier ;) (declaration "uint uVar30;" type_identifier identifier ;) (declaration "double *pdVar31;" primitive_type (pointer_declarator "*pdVar31" * identifier) ;) (declaration "int iVar32;" primitive_type identifier ;) (declaration "int iVar33;" primitive_type identifier ;) (declaration "uint uVar34;" type_identifier identifier ;) (declaration "int iVar35;" primitive_type identifier ;) (declaration "undefined *puVar36;" type_identifier (pointer_declarator "*puVar36" * identifier) ;) (declaration "code *pcVar37;" type_identifier (pointer_declarator "*pcVar37" * identifier) ;) (declaration "int iVar38;" primitive_type identifier ;) (declaration "double dVar39;" primitive_type identifier ;) (declaration "double dVar40;" primitive_type identifier ;) (declaration "undefined8 uVar41;" type_identifier identifier ;) (declaration "double dVar42;" primitive_type identifier ;) (declaration "double dVar43;" primitive_type identifier ;) (declaration "double dVar44;" primitive_type identifier ;) (declaration "undefined8 uVar45;" type_identifier identifier ;) (declaration "double dVar46;" primitive_type identifier ;) (declaration "double dVar47;" primitive_type identifier ;) (declaration "double dVar48;" primitive_type identifier ;) (declaration "double dVar49;" primitive_type identifier ;) (declaration "double dVar50;" primitive_type identifier ;) (declaration "double dVar51;" primitive_type identifier ;) (declaration "double dVar52;" primitive_type identifier ;) (declaration "double dVar53;" primitive_type identifier ;) (declaration "double dVar54;" primitive_type identifier ;) (declaration "double dVar55;" primitive_type identifier ;) (declaration "double dVar56;" primitive_type identifier ;) (declaration "double dVar57;" primitive_type identifier ;) (declaration "double dVar58;" primitive_type identifier ;) (declaration "double dVar59;" primitive_type identifier ;) (declaration "undefined8 uVar60;" type_identifier identifier ;) (declaration "double dVar61;" primitive_type identifier ;) (declaration "double dVar62;" primitive_type identifier ;) (declaration "double dVar63;" primitive_type identifier ;) (declaration "double dVar64;" primitive_type identifier ;) (declaration "double dStack_2b8;" primitive_type identifier ;) (declaration "double dStack_2b0;" primitive_type identifier ;) (declaration "double dStack_2a8;" primitive_type identifier ;) (declaration "double dStack_2a0;" primitive_type identifier ;) (declaration "double dStack_288;" primitive_type identifier ;) (declaration "double dStack_280;" primitive_type identifier ;) (declaration "double dStack_278;" primitive_type identifier ;) (declaration "double dStack_270;" primitive_type identifier ;) (declaration "double dStack_260;" primitive_type identifier ;) (declaration "double dStack_258;" primitive_type identifier ;) (declaration "double dStack_250;" primitive_type identifier ;) (declaration "double dStack_248;" primitive_type identifier ;) (declaration "double dStack_240;" primitive_type identifier ;) (declaration "double dStack_238;" primitive_type identifier ;) (declaration "uint uStack_22c;" type_identifier identifier ;) (declaration "uint uStack_1d0;" type_identifier identifier ;) (declaration "int iStack_188;" primitive_type identifier ;) (declaration "double *pdStack_e8;" primitive_type (pointer_declarator "*pdStack_e8" * identifier) ;) (declaration "double local_d8 [2];" primitive_type (array_declarator "local_d8 [2]" identifier [ number_literal ]) ;) (declaration "undefined4 local_c8;" type_identifier identifier ;) (declaration "double local_b0;" primitive_type identifier ;) (declaration "double local_88;" primitive_type identifier ;) (declaration "double local_80;" primitive_type identifier ;) (declaration "double local_58;" primitive_type identifier ;) (declaration "double adStack_38 [2];" primitive_type (array_declarator "adStack_38 [2]" identifier [ number_literal ]) ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "int local_c;" primitive_type identifier ;) (expression_statement "puVar36 = PTR___stack_chk_guard_003a9230;" (assignment_expression "puVar36 = PTR___stack_chk_guard_003a9230" identifier = identifier) ;) (expression_statement "pdStack_e8 = local_d8;" (assignment_expression "pdStack_e8 = local_d8" identifier = identifier) ;) (expression_statement "local_c = *(int *)PTR___stack_chk_guard_003a9230;" (assignment_expression "local_c = *(int *)PTR___stack_chk_guard_003a9230" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_003a9230" * (cast_expression "(int *)PTR___stack_chk_guard_003a9230" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar13 = param_3;" (assignment_expression "puVar13 = param_3" identifier = identifier) ;) (expression_statement "pdVar6 = pdStack_e8;" (assignment_expression "pdVar6 = pdStack_e8" identifier = identifier) ;) (expression_statement "pdVar7 = pdStack_e8;" (assignment_expression "pdVar7 = pdStack_e8" identifier = identifier) ;) (do_statement "do {\n    do {\n      pdVar8 = pdVar6;\n      puVar12 = puVar13;\n      puVar13 = puVar12 + 4;\n      uVar28 = puVar12[1];\n      uVar27 = puVar12[2];\n      uVar26 = puVar12[3];\n      *(undefined4 *)pdVar8 = *puVar12;\n      *(undefined4 *)((int)pdVar8 + 4) = uVar28;\n      *(undefined4 *)(pdVar8 + 1) = uVar27;\n      *(undefined4 *)((int)pdVar8 + 0xc) = uVar26;\n      pdVar6 = pdVar8 + 2;\n    } while (puVar13 != param_3 + 8);\n    pdVar7 = pdVar7 + 5;\n    uVar26 = puVar12[5];\n    *(undefined4 *)(pdVar8 + 2) = *puVar13;\n    *(undefined4 *)((int)pdVar8 + 0x14) = uVar26;\n    puVar13 = param_3;\n    pdVar6 = pdVar7;\n  } while (pdVar7 != adStack_38);" do (compound_statement "{\n    do {\n      pdVar8 = pdVar6;\n      puVar12 = puVar13;\n      puVar13 = puVar12 + 4;\n      uVar28 = puVar12[1];\n      uVar27 = puVar12[2];\n      uVar26 = puVar12[3];\n      *(undefined4 *)pdVar8 = *puVar12;\n      *(undefined4 *)((int)pdVar8 + 4) = uVar28;\n      *(undefined4 *)(pdVar8 + 1) = uVar27;\n      *(undefined4 *)((int)pdVar8 + 0xc) = uVar26;\n      pdVar6 = pdVar8 + 2;\n    } while (puVar13 != param_3 + 8);\n    pdVar7 = pdVar7 + 5;\n    uVar26 = puVar12[5];\n    *(undefined4 *)(pdVar8 + 2) = *puVar13;\n    *(undefined4 *)((int)pdVar8 + 0x14) = uVar26;\n    puVar13 = param_3;\n    pdVar6 = pdVar7;\n  }" { (do_statement "do {\n      pdVar8 = pdVar6;\n      puVar12 = puVar13;\n      puVar13 = puVar12 + 4;\n      uVar28 = puVar12[1];\n      uVar27 = puVar12[2];\n      uVar26 = puVar12[3];\n      *(undefined4 *)pdVar8 = *puVar12;\n      *(undefined4 *)((int)pdVar8 + 4) = uVar28;\n      *(undefined4 *)(pdVar8 + 1) = uVar27;\n      *(undefined4 *)((int)pdVar8 + 0xc) = uVar26;\n      pdVar6 = pdVar8 + 2;\n    } while (puVar13 != param_3 + 8);" do (compound_statement "{\n      pdVar8 = pdVar6;\n      puVar12 = puVar13;\n      puVar13 = puVar12 + 4;\n      uVar28 = puVar12[1];\n      uVar27 = puVar12[2];\n      uVar26 = puVar12[3];\n      *(undefined4 *)pdVar8 = *puVar12;\n      *(undefined4 *)((int)pdVar8 + 4) = uVar28;\n      *(undefined4 *)(pdVar8 + 1) = uVar27;\n      *(undefined4 *)((int)pdVar8 + 0xc) = uVar26;\n      pdVar6 = pdVar8 + 2;\n    }" { (expression_statement "pdVar8 = pdVar6;" (assignment_expression "pdVar8 = pdVar6" identifier = identifier) ;) (expression_statement "puVar12 = puVar13;" (assignment_expression "puVar12 = puVar13" identifier = identifier) ;) (expression_statement "puVar13 = puVar12 + 4;" (assignment_expression "puVar13 = puVar12 + 4" identifier = (binary_expression "puVar12 + 4" identifier + number_literal)) ;) (expression_statement "uVar28 = puVar12[1];" (assignment_expression "uVar28 = puVar12[1]" identifier = (subscript_expression "puVar12[1]" identifier [ number_literal ])) ;) (expression_statement "uVar27 = puVar12[2];" (assignment_expression "uVar27 = puVar12[2]" identifier = (subscript_expression "puVar12[2]" identifier [ number_literal ])) ;) (expression_statement "uVar26 = puVar12[3];" (assignment_expression "uVar26 = puVar12[3]" identifier = (subscript_expression "puVar12[3]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)pdVar8 = *puVar12;" (assignment_expression "*(undefined4 *)pdVar8 = *puVar12" (pointer_expression "*(undefined4 *)pdVar8" * (cast_expression "(undefined4 *)pdVar8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "*(undefined4 *)((int)pdVar8 + 4) = uVar28;" (assignment_expression "*(undefined4 *)((int)pdVar8 + 4) = uVar28" (pointer_expression "*(undefined4 *)((int)pdVar8 + 4)" * (cast_expression "(undefined4 *)((int)pdVar8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar8 + 4)" ( (binary_expression "(int)pdVar8 + 4" (cast_expression "(int)pdVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(pdVar8 + 1) = uVar27;" (assignment_expression "*(undefined4 *)(pdVar8 + 1) = uVar27" (pointer_expression "*(undefined4 *)(pdVar8 + 1)" * (cast_expression "(undefined4 *)(pdVar8 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar8 + 1)" ( (binary_expression "pdVar8 + 1" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pdVar8 + 0xc) = uVar26;" (assignment_expression "*(undefined4 *)((int)pdVar8 + 0xc) = uVar26" (pointer_expression "*(undefined4 *)((int)pdVar8 + 0xc)" * (cast_expression "(undefined4 *)((int)pdVar8 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar8 + 0xc)" ( (binary_expression "(int)pdVar8 + 0xc" (cast_expression "(int)pdVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pdVar6 = pdVar8 + 2;" (assignment_expression "pdVar6 = pdVar8 + 2" identifier = (binary_expression "pdVar8 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar13 != param_3 + 8)" ( (binary_expression "puVar13 != param_3 + 8" identifier != (binary_expression "param_3 + 8" identifier + number_literal)) )) ;) (expression_statement "pdVar7 = pdVar7 + 5;" (assignment_expression "pdVar7 = pdVar7 + 5" identifier = (binary_expression "pdVar7 + 5" identifier + number_literal)) ;) (expression_statement "uVar26 = puVar12[5];" (assignment_expression "uVar26 = puVar12[5]" identifier = (subscript_expression "puVar12[5]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(pdVar8 + 2) = *puVar13;" (assignment_expression "*(undefined4 *)(pdVar8 + 2) = *puVar13" (pointer_expression "*(undefined4 *)(pdVar8 + 2)" * (cast_expression "(undefined4 *)(pdVar8 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar8 + 2)" ( (binary_expression "pdVar8 + 2" identifier + number_literal) )))) = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "*(undefined4 *)((int)pdVar8 + 0x14) = uVar26;" (assignment_expression "*(undefined4 *)((int)pdVar8 + 0x14) = uVar26" (pointer_expression "*(undefined4 *)((int)pdVar8 + 0x14)" * (cast_expression "(undefined4 *)((int)pdVar8 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar8 + 0x14)" ( (binary_expression "(int)pdVar8 + 0x14" (cast_expression "(int)pdVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar13 = param_3;" (assignment_expression "puVar13 = param_3" identifier = identifier) ;) (expression_statement "pdVar6 = pdVar7;" (assignment_expression "pdVar6 = pdVar7" identifier = identifier) ;) }) while (parenthesized_expression "(pdVar7 != adStack_38)" ( (binary_expression "pdVar7 != adStack_38" identifier != identifier) )) ;) (expression_statement "dVar39 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x47c8);" (assignment_expression "dVar39 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x47c8)" identifier = (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x47c8)" * (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x47c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x47c8)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x47c8" identifier + number_literal) ))))) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "local_c8 = 4;" (assignment_expression "local_c8 = 4" identifier = number_literal) ;) (expression_statement "local_b0 = local_b0 + dVar39;" (assignment_expression "local_b0 = local_b0 + dVar39" identifier = (binary_expression "local_b0 + dVar39" identifier + identifier)) ;) (expression_statement "local_88 = local_88 + dVar39;" (assignment_expression "local_88 = local_88 + dVar39" identifier = (binary_expression "local_88 + dVar39" identifier + identifier)) ;) (expression_statement "local_80 = local_80 + dVar39;" (assignment_expression "local_80 = local_80 + dVar39" identifier = (binary_expression "local_80 + dVar39" identifier + identifier)) ;) (expression_statement "local_58 = local_58 + dVar39;" (assignment_expression "local_58 = local_58 + dVar39" identifier = (binary_expression "local_58 + dVar39" identifier + identifier)) ;) (expression_statement "uVar4 = FUN_000a2d58();" (assignment_expression "uVar4 = FUN_000a2d58()" identifier = (call_expression "FUN_000a2d58()" identifier (argument_list "()" ( )))) ;) (if_statement "if (local_c == *(int *)puVar36) {\n    return uVar4;\n  }" if (parenthesized_expression "(local_c == *(int *)puVar36)" ( (binary_expression "local_c == *(int *)puVar36" identifier == (pointer_expression "*(int *)puVar36" * (cast_expression "(int *)puVar36" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return uVar4;\n  }" { (return_statement "return uVar4;" return identifier ;) })) (expression_statement "iVar17 = local_c;" (assignment_expression "iVar17 = local_c" identifier = identifier) ;) (expression_statement "puVar36 = PTR___stack_chk_fail_003a9064;" (assignment_expression "puVar36 = PTR___stack_chk_fail_003a9064" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_003a9064)();" (call_expression "(*(code *)PTR___stack_chk_fail_003a9064)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_003a9064)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_003a9064" * (cast_expression "(code *)PTR___stack_chk_fail_003a9064" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (if_statement "if (*(int *)(iVar17 + 0x3350) != 0) {\n    (**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x168f,*(int *)(puVar36 + 0x303bd8) + 0x3dd8);\n  }" if (parenthesized_expression "(*(int *)(iVar17 + 0x3350) != 0)" ( (binary_expression "*(int *)(iVar17 + 0x3350) != 0" (pointer_expression "*(int *)(iVar17 + 0x3350)" * (cast_expression "(int *)(iVar17 + 0x3350)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x3350)" ( (binary_expression "iVar17 + 0x3350" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    (**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x168f,*(int *)(puVar36 + 0x303bd8) + 0x3dd8);\n  }" { (expression_statement "(**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x168f,*(int *)(puVar36 + 0x303bd8) + 0x3dd8);" (call_expression "(**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x168f,*(int *)(puVar36 + 0x303bd8) + 0x3dd8)" (parenthesized_expression "(**(code **)(puVar36 + 0x3044d0))" ( (pointer_expression "**(code **)(puVar36 + 0x3044d0)" * (pointer_expression "*(code **)(puVar36 + 0x3044d0)" * (cast_expression "(code **)(puVar36 + 0x3044d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3044d0)" ( (binary_expression "puVar36 + 0x3044d0" identifier + number_literal) ))))) )) (argument_list "(0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x168f,*(int *)(puVar36 + 0x303bd8) + 0x3dd8)" ( number_literal , (binary_expression "*(int *)(puVar36 + 0x303bd8) + 0x38b0" (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar36 + 0x303bd8) + 0x45dc" (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar36 + 0x303bd8) + 0x3dd8" (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) )))) + number_literal) ))) ;) })) (expression_statement "iVar5 = (**(code **)(puVar36 + 0x3044ec))(0,param_2);" (assignment_expression "iVar5 = (**(code **)(puVar36 + 0x3044ec))(0,param_2)" identifier = (call_expression "(**(code **)(puVar36 + 0x3044ec))(0,param_2)" (parenthesized_expression "(**(code **)(puVar36 + 0x3044ec))" ( (pointer_expression "**(code **)(puVar36 + 0x3044ec)" * (pointer_expression "*(code **)(puVar36 + 0x3044ec)" * (cast_expression "(code **)(puVar36 + 0x3044ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3044ec)" ( (binary_expression "puVar36 + 0x3044ec" identifier + number_literal) ))))) )) (argument_list "(0,param_2)" ( number_literal , identifier )))) ;) (expression_statement "puVar13 = (undefined4 *)(iVar5 + 0x48);" (assignment_expression "puVar13 = (undefined4 *)(iVar5 + 0x48)" identifier = (cast_expression "(undefined4 *)(iVar5 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x48)" ( (binary_expression "iVar5 + 0x48" identifier + number_literal) )))) ;) (expression_statement "puVar12 = (undefined4 *)(param_2 + 0xa0);" (assignment_expression "puVar12 = (undefined4 *)(param_2 + 0xa0)" identifier = (cast_expression "(undefined4 *)(param_2 + 0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xa0)" ( (binary_expression "param_2 + 0xa0" identifier + number_literal) )))) ;) (do_statement "do {\n    puVar23 = puVar12;\n    puVar22 = puVar13;\n    puVar12 = puVar23 + 4;\n    uVar28 = puVar23[1];\n    uVar27 = puVar23[2];\n    uVar26 = puVar23[3];\n    *puVar22 = *puVar23;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    puVar13 = puVar22 + 4;\n  } while (puVar12 != (undefined4 *)(param_2 + 0xf0));" do (compound_statement "{\n    puVar23 = puVar12;\n    puVar22 = puVar13;\n    puVar12 = puVar23 + 4;\n    uVar28 = puVar23[1];\n    uVar27 = puVar23[2];\n    uVar26 = puVar23[3];\n    *puVar22 = *puVar23;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    puVar13 = puVar22 + 4;\n  }" { (expression_statement "puVar23 = puVar12;" (assignment_expression "puVar23 = puVar12" identifier = identifier) ;) (expression_statement "puVar22 = puVar13;" (assignment_expression "puVar22 = puVar13" identifier = identifier) ;) (expression_statement "puVar12 = puVar23 + 4;" (assignment_expression "puVar12 = puVar23 + 4" identifier = (binary_expression "puVar23 + 4" identifier + number_literal)) ;) (expression_statement "uVar28 = puVar23[1];" (assignment_expression "uVar28 = puVar23[1]" identifier = (subscript_expression "puVar23[1]" identifier [ number_literal ])) ;) (expression_statement "uVar27 = puVar23[2];" (assignment_expression "uVar27 = puVar23[2]" identifier = (subscript_expression "puVar23[2]" identifier [ number_literal ])) ;) (expression_statement "uVar26 = puVar23[3];" (assignment_expression "uVar26 = puVar23[3]" identifier = (subscript_expression "puVar23[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar22 = *puVar23;" (assignment_expression "*puVar22 = *puVar23" (pointer_expression "*puVar22" * identifier) = (pointer_expression "*puVar23" * identifier)) ;) (expression_statement "puVar22[1] = uVar28;" (assignment_expression "puVar22[1] = uVar28" (subscript_expression "puVar22[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22[2] = uVar27;" (assignment_expression "puVar22[2] = uVar27" (subscript_expression "puVar22[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22[3] = uVar26;" (assignment_expression "puVar22[3] = uVar26" (subscript_expression "puVar22[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13 = puVar22 + 4;" (assignment_expression "puVar13 = puVar22 + 4" identifier = (binary_expression "puVar22 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar12 != (undefined4 *)(param_2 + 0xf0))" ( (binary_expression "puVar12 != (undefined4 *)(param_2 + 0xf0)" identifier != (cast_expression "(undefined4 *)(param_2 + 0xf0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xf0)" ( (binary_expression "param_2 + 0xf0" identifier + number_literal) )))) )) ;) (expression_statement "uVar26 = puVar23[5];" (assignment_expression "uVar26 = puVar23[5]" identifier = (subscript_expression "puVar23[5]" identifier [ number_literal ])) ;) (expression_statement "iVar18 = *(int *)(iVar5 + 0x1a8);" (assignment_expression "iVar18 = *(int *)(iVar5 + 0x1a8)" identifier = (pointer_expression "*(int *)(iVar5 + 0x1a8)" * (cast_expression "(int *)(iVar5 + 0x1a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1a8)" ( (binary_expression "iVar5 + 0x1a8" identifier + number_literal) ))))) ;) (expression_statement "puVar22[4] = *puVar12;" (assignment_expression "puVar22[4] = *puVar12" (subscript_expression "puVar22[4]" identifier [ number_literal ]) = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "puVar22[5] = uVar26;" (assignment_expression "puVar22[5] = uVar26" (subscript_expression "puVar22[5]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar18 != 0) {\n    uVar26 = (**(code **)(puVar36 + 0x30423c))();\n    *(undefined4 *)(iVar5 + 0x1a8) = uVar26;\n  }" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar26 = (**(code **)(puVar36 + 0x30423c))();\n    *(undefined4 *)(iVar5 + 0x1a8) = uVar26;\n  }" { (expression_statement "uVar26 = (**(code **)(puVar36 + 0x30423c))();" (assignment_expression "uVar26 = (**(code **)(puVar36 + 0x30423c))()" identifier = (call_expression "(**(code **)(puVar36 + 0x30423c))()" (parenthesized_expression "(**(code **)(puVar36 + 0x30423c))" ( (pointer_expression "**(code **)(puVar36 + 0x30423c)" * (pointer_expression "*(code **)(puVar36 + 0x30423c)" * (cast_expression "(code **)(puVar36 + 0x30423c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x30423c)" ( (binary_expression "puVar36 + 0x30423c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x1a8) = uVar26;" (assignment_expression "*(undefined4 *)(iVar5 + 0x1a8) = uVar26" (pointer_expression "*(undefined4 *)(iVar5 + 0x1a8)" * (cast_expression "(undefined4 *)(iVar5 + 0x1a8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1a8)" ( (binary_expression "iVar5 + 0x1a8" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (*(int *)(iVar5 + 0x1ac) != 0) {\n    uVar26 = (**(code **)(puVar36 + 0x304b20))(*(int *)(iVar5 + 0x1ac),0,0,1,param_4);\n    *(undefined4 *)(iVar5 + 0x1a8) = uVar26;\n  }" if (parenthesized_expression "(*(int *)(iVar5 + 0x1ac) != 0)" ( (binary_expression "*(int *)(iVar5 + 0x1ac) != 0" (pointer_expression "*(int *)(iVar5 + 0x1ac)" * (cast_expression "(int *)(iVar5 + 0x1ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1ac)" ( (binary_expression "iVar5 + 0x1ac" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    uVar26 = (**(code **)(puVar36 + 0x304b20))(*(int *)(iVar5 + 0x1ac),0,0,1,param_4);\n    *(undefined4 *)(iVar5 + 0x1a8) = uVar26;\n  }" { (expression_statement "uVar26 = (**(code **)(puVar36 + 0x304b20))(*(int *)(iVar5 + 0x1ac),0,0,1,param_4);" (assignment_expression "uVar26 = (**(code **)(puVar36 + 0x304b20))(*(int *)(iVar5 + 0x1ac),0,0,1,param_4)" identifier = (call_expression "(**(code **)(puVar36 + 0x304b20))(*(int *)(iVar5 + 0x1ac),0,0,1,param_4)" (parenthesized_expression "(**(code **)(puVar36 + 0x304b20))" ( (pointer_expression "**(code **)(puVar36 + 0x304b20)" * (pointer_expression "*(code **)(puVar36 + 0x304b20)" * (cast_expression "(code **)(puVar36 + 0x304b20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304b20)" ( (binary_expression "puVar36 + 0x304b20" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar5 + 0x1ac),0,0,1,param_4)" ( (pointer_expression "*(int *)(iVar5 + 0x1ac)" * (cast_expression "(int *)(iVar5 + 0x1ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1ac)" ( (binary_expression "iVar5 + 0x1ac" identifier + number_literal) )))) , number_literal , number_literal , number_literal , identifier )))) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x1a8) = uVar26;" (assignment_expression "*(undefined4 *)(iVar5 + 0x1a8) = uVar26" (pointer_expression "*(undefined4 *)(iVar5 + 0x1a8)" * (cast_expression "(undefined4 *)(iVar5 + 0x1a8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1a8)" ( (binary_expression "iVar5 + 0x1a8" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar18 = *(int *)((int)pdStack_e8 + 0x14);" (assignment_expression "iVar18 = *(int *)((int)pdStack_e8 + 0x14)" identifier = (pointer_expression "*(int *)((int)pdStack_e8 + 0x14)" * (cast_expression "(int *)((int)pdStack_e8 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdStack_e8 + 0x14)" ( (binary_expression "(int)pdStack_e8 + 0x14" (cast_expression "(int)pdStack_e8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar5 + 0xec) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0xec) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0xec)" * (cast_expression "(undefined4 *)(iVar5 + 0xec)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xec)" ( (binary_expression "iVar5 + 0xec" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0xe8) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0xe8) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0xe8)" * (cast_expression "(undefined4 *)(iVar5 + 0xe8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xe8)" ( (binary_expression "iVar5 + 0xe8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x1b4) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x1b4) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x1b4)" * (cast_expression "(undefined4 *)(iVar5 + 0x1b4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1b4)" ( (binary_expression "iVar5 + 0x1b4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x1b0) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x1b0) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x1b0)" * (cast_expression "(undefined4 *)(iVar5 + 0x1b0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1b0)" ( (binary_expression "iVar5 + 0x1b0" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x240) = 2;" (assignment_expression "*(undefined4 *)(iVar5 + 0x240) = 2" (pointer_expression "*(undefined4 *)(iVar5 + 0x240)" * (cast_expression "(undefined4 *)(iVar5 + 0x240)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x240)" ( (binary_expression "iVar5 + 0x240" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (iVar18 != 0) {\n    iVar18 = *(int *)(puVar36 + 0x303bd0);\n    iVar19 = *(int *)(puVar36 + 0x303bd8);\n    uStack_1d0 = 1;\n    dVar39 = *(double *)(iVar18 + 0x13f8);\n    iVar15 = *(int *)(puVar36 + 0x303bd0);\n    dVar40 = *(double *)(iVar15 + 0x1410);\n    uVar41 = *(undefined8 *)(iVar19 + 0x34a0);\nLAB_000a4e98:\n    iVar29 = *(int *)(pdStack_e8 + 2);\n    if (iVar29 == 1) {\n      iVar29 = 0x28;\n      goto LAB_000a6620;\n    }\n    pdVar6 = (double *)(**(code **)(puVar36 + 0x3047fc))(iVar29 + 2,0x28);\n    if (pdVar6 != (double *)0x0) {\n      iVar32 = iVar29 * 0x28;\n      (**(code **)(puVar36 + 0x304648))(pdVar6,pdStack_e8,iVar32);\n      pdVar7 = pdVar6 + iVar29 * 5;\n      if ((ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8) < dVar39) &&\n         (ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]) < dVar39)) {\n        if (*(int *)(param_2 + 0x248) - 1U < 2) {\n          pdVar8 = pdStack_e8 + 5;\n          do {\n            pdVar21 = pdVar7;\n            pdVar11 = pdVar8;\n            pdVar8 = pdVar11 + 2;\n            uVar28 = *(undefined4 *)(pdVar11 + 1);\n            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n            uVar27 = *(undefined4 *)pdVar11;\n            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);\n            *(undefined4 *)(pdVar21 + 1) = uVar28;\n            *(undefined4 *)pdVar21 = uVar27;\n            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;\n            pdVar7 = pdVar21 + 2;\n          } while (pdVar8 != pdStack_e8 + 9);\n          iVar32 = iVar32 + 0x28;\n          uVar26 = *(undefined4 *)pdVar8;\n          pdVar7 = pdVar6 + iVar29 * 5 + 5;\n          *(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14);\n          *(undefined4 *)(pdVar21 + 2) = uVar26;\n          iVar29 = iVar29 + 1;\n        }\n        iStack_188 = 1;\n        bVar2 = true;\n        bVar1 = iVar29 < 2;\n        *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n        if (bVar1) goto LAB_000a6124;\nLAB_000a4fe8:\n        dVar61 = *(double *)(iVar18 + 0x13f8);\n        dStack_260 = pdVar6[5] - *pdVar6;\n        dStack_258 = pdVar6[6] - pdVar6[1];\n        if ((dVar61 <= ABS(dStack_260)) || (dVar61 <= ABS(dStack_258))) {\n          iVar38 = 1;\n        }\n        else {\n          iVar38 = 1;\n          pdVar7 = pdVar6 + 10;\n          do {\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));\n        }\nLAB_000a5110:\n        uVar4 = iVar29 * 2;\n        pdVar7 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        pdVar8 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        if (pdVar7 == (double *)0x0) {\n          if (pdVar8 != (double *)0x0) {\n            (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n          uVar26 = 0x1c93;\n          goto LAB_000a5724;\n        }\n        if (pdVar8 == (double *)0x0) {\n          (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n          goto LAB_000a6cbc;\n        }\n        if (ABS(dStack_260) < *(double *)(iVar18 + 0x13f8)) {\n          dVar61 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else if (ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)) {\n          dVar52 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }\nLAB_000a51b0:\n        dVar42 = (double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18);\n        iVar16 = *(int *)(param_2 + 0x24c) * *(int *)(param_2 + 0x24c);\n        dVar42 = dVar42 * *(double *)(param_2 + 0x1b0) *\n                 *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400);\n        dVar46 = (double)iVar16;\n        if (iVar16 < 0) {\n          dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418);\n        }\n        dVar46 = dVar46 * dVar42 * dVar42;\n        if (*(int *)(param_2 + 0x244) == 3) {\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            iVar16 = iVar29 + -2;\n            dVar50 = pdVar11[1];\n            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);\n            pdVar21 = pdVar6 + iVar16 * 5;\n            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            dVar50 = pdVar21[1];\n            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            goto LAB_000a5220;\n          }\n        }\n        else {\nLAB_000a5220:\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n        }\n        dVar43 = dVar42 * dVar42;\n        dVar53 = dVar43 / (dVar61 * dVar61 + *(double *)(iVar16 + 0x1438));\n        dVar64 = SQRT(dVar53);\n        if (dVar53 < 0.0) {\n          (**(code **)(puVar36 + 0x304770))();\n        }\n        dVar61 = dVar61 * dVar64;\n        pdVar11 = pdVar6 + iVar38 * 5;\n        dVar58 = *pdVar11;\n        dVar62 = pdVar11[1];\n        dVar57 = dVar61 + pdVar6[1];\n        dVar55 = pdVar6[1] - dVar61;\n        dVar53 = dVar64 + *pdVar6;\n        dStack_238 = dVar62 - dVar61;\n        dStack_240 = dVar58 - dVar64;\n        dVar56 = *pdVar6 - dVar64;\n        dVar51 = dVar56;\n        dVar50 = dVar57;\n        dStack_250 = dVar64 + dVar58;\n        dStack_248 = dVar61 + dVar62;\n        if (0.0 < dVar64 * dStack_258 - dVar61 * dStack_260) {\n          dVar51 = dVar53;\n          dVar50 = dVar55;\n          dVar53 = dVar56;\n          dVar55 = dVar57;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar64 + dVar58;\n          dStack_238 = dVar61 + dVar62;\n        }\n        iVar32 = iVar38 + 1;\n        *pdVar8 = dVar51;\n        pdVar8[1] = dVar55;\n        *pdVar7 = dVar53;\n        pdVar7[1] = dVar50;\n        if (iVar32 < iVar29) {\n          iVar20 = *(int *)(puVar36 + 0x303bd8);\n          iVar33 = 1;\n          iVar35 = 1;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78);\n          dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar4;\n          do {\n            dVar44 = pdVar11[6];\n            dVar47 = pdVar11[5];\n            dVar48 = dVar44 - dVar62;\n            dVar54 = dVar47 - dVar58;\n            dVar49 = dVar47 - dVar58;\n            dVar56 = dStack_238;\n            dVar57 = dStack_240;\n            dVar59 = dStack_248;\n            dVar63 = dStack_250;\n            if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar63;\n            dStack_248 = dVar59;\n            dStack_240 = dVar57;\n            dStack_238 = dVar56;\n            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;\n            pdVar11 = pdVar11 + 5;\n            iVar32 = iVar32 + 1;\n            dVar58 = pdVar6[iVar38 * 5];\n            dVar62 = (pdVar6 + iVar38 * 5)[1];\n          } while( true );\n        }\n        iVar38 = 4;\n        iVar32 = 0x10;\n        iVar35 = 0x10;\n        iVar29 = 2;\n        goto LAB_000a5a70;\n      }\n      bVar1 = iVar29 < 2;\n      iStack_188 = 0;\n      bVar2 = false;\n      *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n      if (!bVar1) goto LAB_000a4fe8;\nLAB_000a6124:\n      if (iVar29 != 1) {\n        iVar38 = 1;\n        dStack_258 = 0.0;\n        dStack_260 = 0.0;\n        goto LAB_000a5110;\n      }\n      iVar38 = 1;\n      dStack_258 = 0.0;\n      iVar16 = *(int *)(param_2 + 0x244);\n      dStack_260 = 0.0;\njoined_r0x000a50f8:\n      if (iVar16 == 2) {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n        if (!bVar2) {\n          iVar38 = iVar38 + -1;\n          goto LAB_000a5110;\n        }\n      }\n      else {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n      }\n      puVar13 = (undefined4 *)(*pcVar37)(0x28);\n      pdVar7 = pdVar6;\n      puVar12 = puVar13;\n      do {\n        puVar22 = puVar12;\n        pdVar8 = pdVar7;\n        pdVar7 = pdVar8 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar8 + 4);\n        uVar27 = *(undefined4 *)(pdVar8 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar8 + 0xc);\n        *puVar22 = *(undefined4 *)pdVar8;\n        puVar22[1] = uVar28;\n        puVar22[2] = uVar27;\n        puVar22[3] = uVar26;\n        puVar12 = puVar22 + 4;\n      } while (pdVar7 != pdVar6 + 4);\n      uVar26 = *(undefined4 *)((int)pdVar8 + 0x14);\n      pcVar37 = *(code **)(puVar36 + 0x3042b0);\n      puVar22[4] = *(undefined4 *)pdVar7;\n      puVar22[5] = uVar26;\n      puVar13[4] = 0;\n      (*pcVar37)(pdVar6);\n      goto LAB_000a61cc;\n    }\n    uVar26 = 0x1c57;\nLAB_000a5724:\n    (**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               uVar26,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);\n    uStack_1d0 = 0;\n    goto LAB_000a5774;\n  }" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar18 = *(int *)(puVar36 + 0x303bd0);\n    iVar19 = *(int *)(puVar36 + 0x303bd8);\n    uStack_1d0 = 1;\n    dVar39 = *(double *)(iVar18 + 0x13f8);\n    iVar15 = *(int *)(puVar36 + 0x303bd0);\n    dVar40 = *(double *)(iVar15 + 0x1410);\n    uVar41 = *(undefined8 *)(iVar19 + 0x34a0);\nLAB_000a4e98:\n    iVar29 = *(int *)(pdStack_e8 + 2);\n    if (iVar29 == 1) {\n      iVar29 = 0x28;\n      goto LAB_000a6620;\n    }\n    pdVar6 = (double *)(**(code **)(puVar36 + 0x3047fc))(iVar29 + 2,0x28);\n    if (pdVar6 != (double *)0x0) {\n      iVar32 = iVar29 * 0x28;\n      (**(code **)(puVar36 + 0x304648))(pdVar6,pdStack_e8,iVar32);\n      pdVar7 = pdVar6 + iVar29 * 5;\n      if ((ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8) < dVar39) &&\n         (ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]) < dVar39)) {\n        if (*(int *)(param_2 + 0x248) - 1U < 2) {\n          pdVar8 = pdStack_e8 + 5;\n          do {\n            pdVar21 = pdVar7;\n            pdVar11 = pdVar8;\n            pdVar8 = pdVar11 + 2;\n            uVar28 = *(undefined4 *)(pdVar11 + 1);\n            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n            uVar27 = *(undefined4 *)pdVar11;\n            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);\n            *(undefined4 *)(pdVar21 + 1) = uVar28;\n            *(undefined4 *)pdVar21 = uVar27;\n            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;\n            pdVar7 = pdVar21 + 2;\n          } while (pdVar8 != pdStack_e8 + 9);\n          iVar32 = iVar32 + 0x28;\n          uVar26 = *(undefined4 *)pdVar8;\n          pdVar7 = pdVar6 + iVar29 * 5 + 5;\n          *(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14);\n          *(undefined4 *)(pdVar21 + 2) = uVar26;\n          iVar29 = iVar29 + 1;\n        }\n        iStack_188 = 1;\n        bVar2 = true;\n        bVar1 = iVar29 < 2;\n        *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n        if (bVar1) goto LAB_000a6124;\nLAB_000a4fe8:\n        dVar61 = *(double *)(iVar18 + 0x13f8);\n        dStack_260 = pdVar6[5] - *pdVar6;\n        dStack_258 = pdVar6[6] - pdVar6[1];\n        if ((dVar61 <= ABS(dStack_260)) || (dVar61 <= ABS(dStack_258))) {\n          iVar38 = 1;\n        }\n        else {\n          iVar38 = 1;\n          pdVar7 = pdVar6 + 10;\n          do {\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));\n        }\nLAB_000a5110:\n        uVar4 = iVar29 * 2;\n        pdVar7 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        pdVar8 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        if (pdVar7 == (double *)0x0) {\n          if (pdVar8 != (double *)0x0) {\n            (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n          uVar26 = 0x1c93;\n          goto LAB_000a5724;\n        }\n        if (pdVar8 == (double *)0x0) {\n          (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n          goto LAB_000a6cbc;\n        }\n        if (ABS(dStack_260) < *(double *)(iVar18 + 0x13f8)) {\n          dVar61 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else if (ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)) {\n          dVar52 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }\nLAB_000a51b0:\n        dVar42 = (double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18);\n        iVar16 = *(int *)(param_2 + 0x24c) * *(int *)(param_2 + 0x24c);\n        dVar42 = dVar42 * *(double *)(param_2 + 0x1b0) *\n                 *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400);\n        dVar46 = (double)iVar16;\n        if (iVar16 < 0) {\n          dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418);\n        }\n        dVar46 = dVar46 * dVar42 * dVar42;\n        if (*(int *)(param_2 + 0x244) == 3) {\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            iVar16 = iVar29 + -2;\n            dVar50 = pdVar11[1];\n            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);\n            pdVar21 = pdVar6 + iVar16 * 5;\n            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            dVar50 = pdVar21[1];\n            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            goto LAB_000a5220;\n          }\n        }\n        else {\nLAB_000a5220:\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n        }\n        dVar43 = dVar42 * dVar42;\n        dVar53 = dVar43 / (dVar61 * dVar61 + *(double *)(iVar16 + 0x1438));\n        dVar64 = SQRT(dVar53);\n        if (dVar53 < 0.0) {\n          (**(code **)(puVar36 + 0x304770))();\n        }\n        dVar61 = dVar61 * dVar64;\n        pdVar11 = pdVar6 + iVar38 * 5;\n        dVar58 = *pdVar11;\n        dVar62 = pdVar11[1];\n        dVar57 = dVar61 + pdVar6[1];\n        dVar55 = pdVar6[1] - dVar61;\n        dVar53 = dVar64 + *pdVar6;\n        dStack_238 = dVar62 - dVar61;\n        dStack_240 = dVar58 - dVar64;\n        dVar56 = *pdVar6 - dVar64;\n        dVar51 = dVar56;\n        dVar50 = dVar57;\n        dStack_250 = dVar64 + dVar58;\n        dStack_248 = dVar61 + dVar62;\n        if (0.0 < dVar64 * dStack_258 - dVar61 * dStack_260) {\n          dVar51 = dVar53;\n          dVar50 = dVar55;\n          dVar53 = dVar56;\n          dVar55 = dVar57;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar64 + dVar58;\n          dStack_238 = dVar61 + dVar62;\n        }\n        iVar32 = iVar38 + 1;\n        *pdVar8 = dVar51;\n        pdVar8[1] = dVar55;\n        *pdVar7 = dVar53;\n        pdVar7[1] = dVar50;\n        if (iVar32 < iVar29) {\n          iVar20 = *(int *)(puVar36 + 0x303bd8);\n          iVar33 = 1;\n          iVar35 = 1;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78);\n          dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar4;\n          do {\n            dVar44 = pdVar11[6];\n            dVar47 = pdVar11[5];\n            dVar48 = dVar44 - dVar62;\n            dVar54 = dVar47 - dVar58;\n            dVar49 = dVar47 - dVar58;\n            dVar56 = dStack_238;\n            dVar57 = dStack_240;\n            dVar59 = dStack_248;\n            dVar63 = dStack_250;\n            if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar63;\n            dStack_248 = dVar59;\n            dStack_240 = dVar57;\n            dStack_238 = dVar56;\n            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;\n            pdVar11 = pdVar11 + 5;\n            iVar32 = iVar32 + 1;\n            dVar58 = pdVar6[iVar38 * 5];\n            dVar62 = (pdVar6 + iVar38 * 5)[1];\n          } while( true );\n        }\n        iVar38 = 4;\n        iVar32 = 0x10;\n        iVar35 = 0x10;\n        iVar29 = 2;\n        goto LAB_000a5a70;\n      }\n      bVar1 = iVar29 < 2;\n      iStack_188 = 0;\n      bVar2 = false;\n      *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n      if (!bVar1) goto LAB_000a4fe8;\nLAB_000a6124:\n      if (iVar29 != 1) {\n        iVar38 = 1;\n        dStack_258 = 0.0;\n        dStack_260 = 0.0;\n        goto LAB_000a5110;\n      }\n      iVar38 = 1;\n      dStack_258 = 0.0;\n      iVar16 = *(int *)(param_2 + 0x244);\n      dStack_260 = 0.0;\njoined_r0x000a50f8:\n      if (iVar16 == 2) {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n        if (!bVar2) {\n          iVar38 = iVar38 + -1;\n          goto LAB_000a5110;\n        }\n      }\n      else {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n      }\n      puVar13 = (undefined4 *)(*pcVar37)(0x28);\n      pdVar7 = pdVar6;\n      puVar12 = puVar13;\n      do {\n        puVar22 = puVar12;\n        pdVar8 = pdVar7;\n        pdVar7 = pdVar8 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar8 + 4);\n        uVar27 = *(undefined4 *)(pdVar8 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar8 + 0xc);\n        *puVar22 = *(undefined4 *)pdVar8;\n        puVar22[1] = uVar28;\n        puVar22[2] = uVar27;\n        puVar22[3] = uVar26;\n        puVar12 = puVar22 + 4;\n      } while (pdVar7 != pdVar6 + 4);\n      uVar26 = *(undefined4 *)((int)pdVar8 + 0x14);\n      pcVar37 = *(code **)(puVar36 + 0x3042b0);\n      puVar22[4] = *(undefined4 *)pdVar7;\n      puVar22[5] = uVar26;\n      puVar13[4] = 0;\n      (*pcVar37)(pdVar6);\n      goto LAB_000a61cc;\n    }\n    uVar26 = 0x1c57;\nLAB_000a5724:\n    (**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               uVar26,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);\n    uStack_1d0 = 0;\n    goto LAB_000a5774;\n  }" { (expression_statement "iVar18 = *(int *)(puVar36 + 0x303bd0);" (assignment_expression "iVar18 = *(int *)(puVar36 + 0x303bd0)" identifier = (pointer_expression "*(int *)(puVar36 + 0x303bd0)" * (cast_expression "(int *)(puVar36 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd0)" ( (binary_expression "puVar36 + 0x303bd0" identifier + number_literal) ))))) ;) (expression_statement "iVar19 = *(int *)(puVar36 + 0x303bd8);" (assignment_expression "iVar19 = *(int *)(puVar36 + 0x303bd8)" identifier = (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) ))))) ;) (expression_statement "uStack_1d0 = 1;" (assignment_expression "uStack_1d0 = 1" identifier = number_literal) ;) (expression_statement "dVar39 = *(double *)(iVar18 + 0x13f8);" (assignment_expression "dVar39 = *(double *)(iVar18 + 0x13f8)" identifier = (pointer_expression "*(double *)(iVar18 + 0x13f8)" * (cast_expression "(double *)(iVar18 + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x13f8)" ( (binary_expression "iVar18 + 0x13f8" identifier + number_literal) ))))) ;) (expression_statement "iVar15 = *(int *)(puVar36 + 0x303bd0);" (assignment_expression "iVar15 = *(int *)(puVar36 + 0x303bd0)" identifier = (pointer_expression "*(int *)(puVar36 + 0x303bd0)" * (cast_expression "(int *)(puVar36 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd0)" ( (binary_expression "puVar36 + 0x303bd0" identifier + number_literal) ))))) ;) (expression_statement "dVar40 = *(double *)(iVar15 + 0x1410);" (assignment_expression "dVar40 = *(double *)(iVar15 + 0x1410)" identifier = (pointer_expression "*(double *)(iVar15 + 0x1410)" * (cast_expression "(double *)(iVar15 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x1410)" ( (binary_expression "iVar15 + 0x1410" identifier + number_literal) ))))) ;) (expression_statement "uVar41 = *(undefined8 *)(iVar19 + 0x34a0);" (assignment_expression "uVar41 = *(undefined8 *)(iVar19 + 0x34a0)" identifier = (pointer_expression "*(undefined8 *)(iVar19 + 0x34a0)" * (cast_expression "(undefined8 *)(iVar19 + 0x34a0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x34a0)" ( (binary_expression "iVar19 + 0x34a0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000a4e98:\n    iVar29 = *(int *)(pdStack_e8 + 2);" statement_identifier : (expression_statement "iVar29 = *(int *)(pdStack_e8 + 2);" (assignment_expression "iVar29 = *(int *)(pdStack_e8 + 2)" identifier = (pointer_expression "*(int *)(pdStack_e8 + 2)" * (cast_expression "(int *)(pdStack_e8 + 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdStack_e8 + 2)" ( (binary_expression "pdStack_e8 + 2" identifier + number_literal) ))))) ;)) (if_statement "if (iVar29 == 1) {\n      iVar29 = 0x28;\n      goto LAB_000a6620;\n    }" if (parenthesized_expression "(iVar29 == 1)" ( (binary_expression "iVar29 == 1" identifier == number_literal) )) (compound_statement "{\n      iVar29 = 0x28;\n      goto LAB_000a6620;\n    }" { (expression_statement "iVar29 = 0x28;" (assignment_expression "iVar29 = 0x28" identifier = number_literal) ;) (goto_statement "goto LAB_000a6620;" goto statement_identifier ;) })) (expression_statement "pdVar6 = (double *)(**(code **)(puVar36 + 0x3047fc))(iVar29 + 2,0x28);" (assignment_expression "pdVar6 = (double *)(**(code **)(puVar36 + 0x3047fc))(iVar29 + 2,0x28)" identifier = (cast_expression "(double *)(**(code **)(puVar36 + 0x3047fc))(iVar29 + 2,0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar36 + 0x3047fc))(iVar29 + 2,0x28)" (parenthesized_expression "(**(code **)(puVar36 + 0x3047fc))" ( (pointer_expression "**(code **)(puVar36 + 0x3047fc)" * (pointer_expression "*(code **)(puVar36 + 0x3047fc)" * (cast_expression "(code **)(puVar36 + 0x3047fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3047fc)" ( (binary_expression "puVar36 + 0x3047fc" identifier + number_literal) ))))) )) (argument_list "(iVar29 + 2,0x28)" ( (binary_expression "iVar29 + 2" identifier + number_literal) , number_literal ))))) ;) (if_statement "if (pdVar6 != (double *)0x0) {\n      iVar32 = iVar29 * 0x28;\n      (**(code **)(puVar36 + 0x304648))(pdVar6,pdStack_e8,iVar32);\n      pdVar7 = pdVar6 + iVar29 * 5;\n      if ((ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8) < dVar39) &&\n         (ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]) < dVar39)) {\n        if (*(int *)(param_2 + 0x248) - 1U < 2) {\n          pdVar8 = pdStack_e8 + 5;\n          do {\n            pdVar21 = pdVar7;\n            pdVar11 = pdVar8;\n            pdVar8 = pdVar11 + 2;\n            uVar28 = *(undefined4 *)(pdVar11 + 1);\n            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n            uVar27 = *(undefined4 *)pdVar11;\n            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);\n            *(undefined4 *)(pdVar21 + 1) = uVar28;\n            *(undefined4 *)pdVar21 = uVar27;\n            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;\n            pdVar7 = pdVar21 + 2;\n          } while (pdVar8 != pdStack_e8 + 9);\n          iVar32 = iVar32 + 0x28;\n          uVar26 = *(undefined4 *)pdVar8;\n          pdVar7 = pdVar6 + iVar29 * 5 + 5;\n          *(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14);\n          *(undefined4 *)(pdVar21 + 2) = uVar26;\n          iVar29 = iVar29 + 1;\n        }\n        iStack_188 = 1;\n        bVar2 = true;\n        bVar1 = iVar29 < 2;\n        *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n        if (bVar1) goto LAB_000a6124;\nLAB_000a4fe8:\n        dVar61 = *(double *)(iVar18 + 0x13f8);\n        dStack_260 = pdVar6[5] - *pdVar6;\n        dStack_258 = pdVar6[6] - pdVar6[1];\n        if ((dVar61 <= ABS(dStack_260)) || (dVar61 <= ABS(dStack_258))) {\n          iVar38 = 1;\n        }\n        else {\n          iVar38 = 1;\n          pdVar7 = pdVar6 + 10;\n          do {\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));\n        }\nLAB_000a5110:\n        uVar4 = iVar29 * 2;\n        pdVar7 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        pdVar8 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        if (pdVar7 == (double *)0x0) {\n          if (pdVar8 != (double *)0x0) {\n            (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n          uVar26 = 0x1c93;\n          goto LAB_000a5724;\n        }\n        if (pdVar8 == (double *)0x0) {\n          (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n          goto LAB_000a6cbc;\n        }\n        if (ABS(dStack_260) < *(double *)(iVar18 + 0x13f8)) {\n          dVar61 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else if (ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)) {\n          dVar52 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }\nLAB_000a51b0:\n        dVar42 = (double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18);\n        iVar16 = *(int *)(param_2 + 0x24c) * *(int *)(param_2 + 0x24c);\n        dVar42 = dVar42 * *(double *)(param_2 + 0x1b0) *\n                 *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400);\n        dVar46 = (double)iVar16;\n        if (iVar16 < 0) {\n          dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418);\n        }\n        dVar46 = dVar46 * dVar42 * dVar42;\n        if (*(int *)(param_2 + 0x244) == 3) {\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            iVar16 = iVar29 + -2;\n            dVar50 = pdVar11[1];\n            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);\n            pdVar21 = pdVar6 + iVar16 * 5;\n            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            dVar50 = pdVar21[1];\n            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            goto LAB_000a5220;\n          }\n        }\n        else {\nLAB_000a5220:\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n        }\n        dVar43 = dVar42 * dVar42;\n        dVar53 = dVar43 / (dVar61 * dVar61 + *(double *)(iVar16 + 0x1438));\n        dVar64 = SQRT(dVar53);\n        if (dVar53 < 0.0) {\n          (**(code **)(puVar36 + 0x304770))();\n        }\n        dVar61 = dVar61 * dVar64;\n        pdVar11 = pdVar6 + iVar38 * 5;\n        dVar58 = *pdVar11;\n        dVar62 = pdVar11[1];\n        dVar57 = dVar61 + pdVar6[1];\n        dVar55 = pdVar6[1] - dVar61;\n        dVar53 = dVar64 + *pdVar6;\n        dStack_238 = dVar62 - dVar61;\n        dStack_240 = dVar58 - dVar64;\n        dVar56 = *pdVar6 - dVar64;\n        dVar51 = dVar56;\n        dVar50 = dVar57;\n        dStack_250 = dVar64 + dVar58;\n        dStack_248 = dVar61 + dVar62;\n        if (0.0 < dVar64 * dStack_258 - dVar61 * dStack_260) {\n          dVar51 = dVar53;\n          dVar50 = dVar55;\n          dVar53 = dVar56;\n          dVar55 = dVar57;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar64 + dVar58;\n          dStack_238 = dVar61 + dVar62;\n        }\n        iVar32 = iVar38 + 1;\n        *pdVar8 = dVar51;\n        pdVar8[1] = dVar55;\n        *pdVar7 = dVar53;\n        pdVar7[1] = dVar50;\n        if (iVar32 < iVar29) {\n          iVar20 = *(int *)(puVar36 + 0x303bd8);\n          iVar33 = 1;\n          iVar35 = 1;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78);\n          dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar4;\n          do {\n            dVar44 = pdVar11[6];\n            dVar47 = pdVar11[5];\n            dVar48 = dVar44 - dVar62;\n            dVar54 = dVar47 - dVar58;\n            dVar49 = dVar47 - dVar58;\n            dVar56 = dStack_238;\n            dVar57 = dStack_240;\n            dVar59 = dStack_248;\n            dVar63 = dStack_250;\n            if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar63;\n            dStack_248 = dVar59;\n            dStack_240 = dVar57;\n            dStack_238 = dVar56;\n            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;\n            pdVar11 = pdVar11 + 5;\n            iVar32 = iVar32 + 1;\n            dVar58 = pdVar6[iVar38 * 5];\n            dVar62 = (pdVar6 + iVar38 * 5)[1];\n          } while( true );\n        }\n        iVar38 = 4;\n        iVar32 = 0x10;\n        iVar35 = 0x10;\n        iVar29 = 2;\n        goto LAB_000a5a70;\n      }\n      bVar1 = iVar29 < 2;\n      iStack_188 = 0;\n      bVar2 = false;\n      *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n      if (!bVar1) goto LAB_000a4fe8;\nLAB_000a6124:\n      if (iVar29 != 1) {\n        iVar38 = 1;\n        dStack_258 = 0.0;\n        dStack_260 = 0.0;\n        goto LAB_000a5110;\n      }\n      iVar38 = 1;\n      dStack_258 = 0.0;\n      iVar16 = *(int *)(param_2 + 0x244);\n      dStack_260 = 0.0;\njoined_r0x000a50f8:\n      if (iVar16 == 2) {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n        if (!bVar2) {\n          iVar38 = iVar38 + -1;\n          goto LAB_000a5110;\n        }\n      }\n      else {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n      }\n      puVar13 = (undefined4 *)(*pcVar37)(0x28);\n      pdVar7 = pdVar6;\n      puVar12 = puVar13;\n      do {\n        puVar22 = puVar12;\n        pdVar8 = pdVar7;\n        pdVar7 = pdVar8 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar8 + 4);\n        uVar27 = *(undefined4 *)(pdVar8 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar8 + 0xc);\n        *puVar22 = *(undefined4 *)pdVar8;\n        puVar22[1] = uVar28;\n        puVar22[2] = uVar27;\n        puVar22[3] = uVar26;\n        puVar12 = puVar22 + 4;\n      } while (pdVar7 != pdVar6 + 4);\n      uVar26 = *(undefined4 *)((int)pdVar8 + 0x14);\n      pcVar37 = *(code **)(puVar36 + 0x3042b0);\n      puVar22[4] = *(undefined4 *)pdVar7;\n      puVar22[5] = uVar26;\n      puVar13[4] = 0;\n      (*pcVar37)(pdVar6);\n      goto LAB_000a61cc;\n    }" if (parenthesized_expression "(pdVar6 != (double *)0x0)" ( (binary_expression "pdVar6 != (double *)0x0" identifier != (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar32 = iVar29 * 0x28;\n      (**(code **)(puVar36 + 0x304648))(pdVar6,pdStack_e8,iVar32);\n      pdVar7 = pdVar6 + iVar29 * 5;\n      if ((ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8) < dVar39) &&\n         (ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]) < dVar39)) {\n        if (*(int *)(param_2 + 0x248) - 1U < 2) {\n          pdVar8 = pdStack_e8 + 5;\n          do {\n            pdVar21 = pdVar7;\n            pdVar11 = pdVar8;\n            pdVar8 = pdVar11 + 2;\n            uVar28 = *(undefined4 *)(pdVar11 + 1);\n            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n            uVar27 = *(undefined4 *)pdVar11;\n            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);\n            *(undefined4 *)(pdVar21 + 1) = uVar28;\n            *(undefined4 *)pdVar21 = uVar27;\n            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;\n            pdVar7 = pdVar21 + 2;\n          } while (pdVar8 != pdStack_e8 + 9);\n          iVar32 = iVar32 + 0x28;\n          uVar26 = *(undefined4 *)pdVar8;\n          pdVar7 = pdVar6 + iVar29 * 5 + 5;\n          *(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14);\n          *(undefined4 *)(pdVar21 + 2) = uVar26;\n          iVar29 = iVar29 + 1;\n        }\n        iStack_188 = 1;\n        bVar2 = true;\n        bVar1 = iVar29 < 2;\n        *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n        if (bVar1) goto LAB_000a6124;\nLAB_000a4fe8:\n        dVar61 = *(double *)(iVar18 + 0x13f8);\n        dStack_260 = pdVar6[5] - *pdVar6;\n        dStack_258 = pdVar6[6] - pdVar6[1];\n        if ((dVar61 <= ABS(dStack_260)) || (dVar61 <= ABS(dStack_258))) {\n          iVar38 = 1;\n        }\n        else {\n          iVar38 = 1;\n          pdVar7 = pdVar6 + 10;\n          do {\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));\n        }\nLAB_000a5110:\n        uVar4 = iVar29 * 2;\n        pdVar7 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        pdVar8 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        if (pdVar7 == (double *)0x0) {\n          if (pdVar8 != (double *)0x0) {\n            (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n          uVar26 = 0x1c93;\n          goto LAB_000a5724;\n        }\n        if (pdVar8 == (double *)0x0) {\n          (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n          goto LAB_000a6cbc;\n        }\n        if (ABS(dStack_260) < *(double *)(iVar18 + 0x13f8)) {\n          dVar61 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else if (ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)) {\n          dVar52 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }\nLAB_000a51b0:\n        dVar42 = (double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18);\n        iVar16 = *(int *)(param_2 + 0x24c) * *(int *)(param_2 + 0x24c);\n        dVar42 = dVar42 * *(double *)(param_2 + 0x1b0) *\n                 *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400);\n        dVar46 = (double)iVar16;\n        if (iVar16 < 0) {\n          dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418);\n        }\n        dVar46 = dVar46 * dVar42 * dVar42;\n        if (*(int *)(param_2 + 0x244) == 3) {\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            iVar16 = iVar29 + -2;\n            dVar50 = pdVar11[1];\n            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);\n            pdVar21 = pdVar6 + iVar16 * 5;\n            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            dVar50 = pdVar21[1];\n            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            goto LAB_000a5220;\n          }\n        }\n        else {\nLAB_000a5220:\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n        }\n        dVar43 = dVar42 * dVar42;\n        dVar53 = dVar43 / (dVar61 * dVar61 + *(double *)(iVar16 + 0x1438));\n        dVar64 = SQRT(dVar53);\n        if (dVar53 < 0.0) {\n          (**(code **)(puVar36 + 0x304770))();\n        }\n        dVar61 = dVar61 * dVar64;\n        pdVar11 = pdVar6 + iVar38 * 5;\n        dVar58 = *pdVar11;\n        dVar62 = pdVar11[1];\n        dVar57 = dVar61 + pdVar6[1];\n        dVar55 = pdVar6[1] - dVar61;\n        dVar53 = dVar64 + *pdVar6;\n        dStack_238 = dVar62 - dVar61;\n        dStack_240 = dVar58 - dVar64;\n        dVar56 = *pdVar6 - dVar64;\n        dVar51 = dVar56;\n        dVar50 = dVar57;\n        dStack_250 = dVar64 + dVar58;\n        dStack_248 = dVar61 + dVar62;\n        if (0.0 < dVar64 * dStack_258 - dVar61 * dStack_260) {\n          dVar51 = dVar53;\n          dVar50 = dVar55;\n          dVar53 = dVar56;\n          dVar55 = dVar57;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar64 + dVar58;\n          dStack_238 = dVar61 + dVar62;\n        }\n        iVar32 = iVar38 + 1;\n        *pdVar8 = dVar51;\n        pdVar8[1] = dVar55;\n        *pdVar7 = dVar53;\n        pdVar7[1] = dVar50;\n        if (iVar32 < iVar29) {\n          iVar20 = *(int *)(puVar36 + 0x303bd8);\n          iVar33 = 1;\n          iVar35 = 1;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78);\n          dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar4;\n          do {\n            dVar44 = pdVar11[6];\n            dVar47 = pdVar11[5];\n            dVar48 = dVar44 - dVar62;\n            dVar54 = dVar47 - dVar58;\n            dVar49 = dVar47 - dVar58;\n            dVar56 = dStack_238;\n            dVar57 = dStack_240;\n            dVar59 = dStack_248;\n            dVar63 = dStack_250;\n            if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar63;\n            dStack_248 = dVar59;\n            dStack_240 = dVar57;\n            dStack_238 = dVar56;\n            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;\n            pdVar11 = pdVar11 + 5;\n            iVar32 = iVar32 + 1;\n            dVar58 = pdVar6[iVar38 * 5];\n            dVar62 = (pdVar6 + iVar38 * 5)[1];\n          } while( true );\n        }\n        iVar38 = 4;\n        iVar32 = 0x10;\n        iVar35 = 0x10;\n        iVar29 = 2;\n        goto LAB_000a5a70;\n      }\n      bVar1 = iVar29 < 2;\n      iStack_188 = 0;\n      bVar2 = false;\n      *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n      if (!bVar1) goto LAB_000a4fe8;\nLAB_000a6124:\n      if (iVar29 != 1) {\n        iVar38 = 1;\n        dStack_258 = 0.0;\n        dStack_260 = 0.0;\n        goto LAB_000a5110;\n      }\n      iVar38 = 1;\n      dStack_258 = 0.0;\n      iVar16 = *(int *)(param_2 + 0x244);\n      dStack_260 = 0.0;\njoined_r0x000a50f8:\n      if (iVar16 == 2) {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n        if (!bVar2) {\n          iVar38 = iVar38 + -1;\n          goto LAB_000a5110;\n        }\n      }\n      else {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n      }\n      puVar13 = (undefined4 *)(*pcVar37)(0x28);\n      pdVar7 = pdVar6;\n      puVar12 = puVar13;\n      do {\n        puVar22 = puVar12;\n        pdVar8 = pdVar7;\n        pdVar7 = pdVar8 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar8 + 4);\n        uVar27 = *(undefined4 *)(pdVar8 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar8 + 0xc);\n        *puVar22 = *(undefined4 *)pdVar8;\n        puVar22[1] = uVar28;\n        puVar22[2] = uVar27;\n        puVar22[3] = uVar26;\n        puVar12 = puVar22 + 4;\n      } while (pdVar7 != pdVar6 + 4);\n      uVar26 = *(undefined4 *)((int)pdVar8 + 0x14);\n      pcVar37 = *(code **)(puVar36 + 0x3042b0);\n      puVar22[4] = *(undefined4 *)pdVar7;\n      puVar22[5] = uVar26;\n      puVar13[4] = 0;\n      (*pcVar37)(pdVar6);\n      goto LAB_000a61cc;\n    }" { (expression_statement "iVar32 = iVar29 * 0x28;" (assignment_expression "iVar32 = iVar29 * 0x28" identifier = (binary_expression "iVar29 * 0x28" identifier * number_literal)) ;) (expression_statement "(**(code **)(puVar36 + 0x304648))(pdVar6,pdStack_e8,iVar32);" (call_expression "(**(code **)(puVar36 + 0x304648))(pdVar6,pdStack_e8,iVar32)" (parenthesized_expression "(**(code **)(puVar36 + 0x304648))" ( (pointer_expression "**(code **)(puVar36 + 0x304648)" * (pointer_expression "*(code **)(puVar36 + 0x304648)" * (cast_expression "(code **)(puVar36 + 0x304648)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304648)" ( (binary_expression "puVar36 + 0x304648" identifier + number_literal) ))))) )) (argument_list "(pdVar6,pdStack_e8,iVar32)" ( identifier , identifier , identifier ))) ;) (expression_statement "pdVar7 = pdVar6 + iVar29 * 5;" (assignment_expression "pdVar7 = pdVar6 + iVar29 * 5" identifier = (binary_expression "pdVar6 + iVar29 * 5" identifier + (binary_expression "iVar29 * 5" identifier * number_literal))) ;) (if_statement "if ((ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8) < dVar39) &&\n         (ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]) < dVar39)) {\n        if (*(int *)(param_2 + 0x248) - 1U < 2) {\n          pdVar8 = pdStack_e8 + 5;\n          do {\n            pdVar21 = pdVar7;\n            pdVar11 = pdVar8;\n            pdVar8 = pdVar11 + 2;\n            uVar28 = *(undefined4 *)(pdVar11 + 1);\n            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n            uVar27 = *(undefined4 *)pdVar11;\n            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);\n            *(undefined4 *)(pdVar21 + 1) = uVar28;\n            *(undefined4 *)pdVar21 = uVar27;\n            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;\n            pdVar7 = pdVar21 + 2;\n          } while (pdVar8 != pdStack_e8 + 9);\n          iVar32 = iVar32 + 0x28;\n          uVar26 = *(undefined4 *)pdVar8;\n          pdVar7 = pdVar6 + iVar29 * 5 + 5;\n          *(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14);\n          *(undefined4 *)(pdVar21 + 2) = uVar26;\n          iVar29 = iVar29 + 1;\n        }\n        iStack_188 = 1;\n        bVar2 = true;\n        bVar1 = iVar29 < 2;\n        *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n        if (bVar1) goto LAB_000a6124;\nLAB_000a4fe8:\n        dVar61 = *(double *)(iVar18 + 0x13f8);\n        dStack_260 = pdVar6[5] - *pdVar6;\n        dStack_258 = pdVar6[6] - pdVar6[1];\n        if ((dVar61 <= ABS(dStack_260)) || (dVar61 <= ABS(dStack_258))) {\n          iVar38 = 1;\n        }\n        else {\n          iVar38 = 1;\n          pdVar7 = pdVar6 + 10;\n          do {\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));\n        }\nLAB_000a5110:\n        uVar4 = iVar29 * 2;\n        pdVar7 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        pdVar8 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        if (pdVar7 == (double *)0x0) {\n          if (pdVar8 != (double *)0x0) {\n            (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n          uVar26 = 0x1c93;\n          goto LAB_000a5724;\n        }\n        if (pdVar8 == (double *)0x0) {\n          (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n          goto LAB_000a6cbc;\n        }\n        if (ABS(dStack_260) < *(double *)(iVar18 + 0x13f8)) {\n          dVar61 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else if (ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)) {\n          dVar52 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }\nLAB_000a51b0:\n        dVar42 = (double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18);\n        iVar16 = *(int *)(param_2 + 0x24c) * *(int *)(param_2 + 0x24c);\n        dVar42 = dVar42 * *(double *)(param_2 + 0x1b0) *\n                 *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400);\n        dVar46 = (double)iVar16;\n        if (iVar16 < 0) {\n          dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418);\n        }\n        dVar46 = dVar46 * dVar42 * dVar42;\n        if (*(int *)(param_2 + 0x244) == 3) {\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            iVar16 = iVar29 + -2;\n            dVar50 = pdVar11[1];\n            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);\n            pdVar21 = pdVar6 + iVar16 * 5;\n            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            dVar50 = pdVar21[1];\n            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            goto LAB_000a5220;\n          }\n        }\n        else {\nLAB_000a5220:\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n        }\n        dVar43 = dVar42 * dVar42;\n        dVar53 = dVar43 / (dVar61 * dVar61 + *(double *)(iVar16 + 0x1438));\n        dVar64 = SQRT(dVar53);\n        if (dVar53 < 0.0) {\n          (**(code **)(puVar36 + 0x304770))();\n        }\n        dVar61 = dVar61 * dVar64;\n        pdVar11 = pdVar6 + iVar38 * 5;\n        dVar58 = *pdVar11;\n        dVar62 = pdVar11[1];\n        dVar57 = dVar61 + pdVar6[1];\n        dVar55 = pdVar6[1] - dVar61;\n        dVar53 = dVar64 + *pdVar6;\n        dStack_238 = dVar62 - dVar61;\n        dStack_240 = dVar58 - dVar64;\n        dVar56 = *pdVar6 - dVar64;\n        dVar51 = dVar56;\n        dVar50 = dVar57;\n        dStack_250 = dVar64 + dVar58;\n        dStack_248 = dVar61 + dVar62;\n        if (0.0 < dVar64 * dStack_258 - dVar61 * dStack_260) {\n          dVar51 = dVar53;\n          dVar50 = dVar55;\n          dVar53 = dVar56;\n          dVar55 = dVar57;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar64 + dVar58;\n          dStack_238 = dVar61 + dVar62;\n        }\n        iVar32 = iVar38 + 1;\n        *pdVar8 = dVar51;\n        pdVar8[1] = dVar55;\n        *pdVar7 = dVar53;\n        pdVar7[1] = dVar50;\n        if (iVar32 < iVar29) {\n          iVar20 = *(int *)(puVar36 + 0x303bd8);\n          iVar33 = 1;\n          iVar35 = 1;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78);\n          dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar4;\n          do {\n            dVar44 = pdVar11[6];\n            dVar47 = pdVar11[5];\n            dVar48 = dVar44 - dVar62;\n            dVar54 = dVar47 - dVar58;\n            dVar49 = dVar47 - dVar58;\n            dVar56 = dStack_238;\n            dVar57 = dStack_240;\n            dVar59 = dStack_248;\n            dVar63 = dStack_250;\n            if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar63;\n            dStack_248 = dVar59;\n            dStack_240 = dVar57;\n            dStack_238 = dVar56;\n            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;\n            pdVar11 = pdVar11 + 5;\n            iVar32 = iVar32 + 1;\n            dVar58 = pdVar6[iVar38 * 5];\n            dVar62 = (pdVar6 + iVar38 * 5)[1];\n          } while( true );\n        }\n        iVar38 = 4;\n        iVar32 = 0x10;\n        iVar35 = 0x10;\n        iVar29 = 2;\n        goto LAB_000a5a70;\n      }" if (parenthesized_expression "((ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8) < dVar39) &&\n         (ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]) < dVar39))" ( (binary_expression "(ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8) < dVar39) &&\n         (ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]) < dVar39)" (parenthesized_expression "(ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8) < dVar39)" ( (binary_expression "ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8) < dVar39" (call_expression "ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8)" identifier (argument_list "(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8)" ( (binary_expression "pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8" (subscript_expression "pdStack_e8[iVar29 * 5 + -5]" identifier [ (binary_expression "iVar29 * 5 + -5" (binary_expression "iVar29 * 5" identifier * number_literal) + number_literal) ]) - (pointer_expression "*pdStack_e8" * identifier)) ))) < identifier) )) && (parenthesized_expression "(ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]) < dVar39)" ( (binary_expression "ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]) < dVar39" (call_expression "ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1])" identifier (argument_list "((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1])" ( (binary_expression "(pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]" (subscript_expression "(pdStack_e8 + iVar29 * 5 + -5)[1]" (parenthesized_expression "(pdStack_e8 + iVar29 * 5 + -5)" ( (binary_expression "pdStack_e8 + iVar29 * 5 + -5" (binary_expression "pdStack_e8 + iVar29 * 5" identifier + (binary_expression "iVar29 * 5" identifier * number_literal)) + number_literal) )) [ number_literal ]) - (subscript_expression "pdStack_e8[1]" identifier [ number_literal ])) ))) < identifier) ))) )) (compound_statement "{\n        if (*(int *)(param_2 + 0x248) - 1U < 2) {\n          pdVar8 = pdStack_e8 + 5;\n          do {\n            pdVar21 = pdVar7;\n            pdVar11 = pdVar8;\n            pdVar8 = pdVar11 + 2;\n            uVar28 = *(undefined4 *)(pdVar11 + 1);\n            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n            uVar27 = *(undefined4 *)pdVar11;\n            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);\n            *(undefined4 *)(pdVar21 + 1) = uVar28;\n            *(undefined4 *)pdVar21 = uVar27;\n            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;\n            pdVar7 = pdVar21 + 2;\n          } while (pdVar8 != pdStack_e8 + 9);\n          iVar32 = iVar32 + 0x28;\n          uVar26 = *(undefined4 *)pdVar8;\n          pdVar7 = pdVar6 + iVar29 * 5 + 5;\n          *(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14);\n          *(undefined4 *)(pdVar21 + 2) = uVar26;\n          iVar29 = iVar29 + 1;\n        }\n        iStack_188 = 1;\n        bVar2 = true;\n        bVar1 = iVar29 < 2;\n        *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n        if (bVar1) goto LAB_000a6124;\nLAB_000a4fe8:\n        dVar61 = *(double *)(iVar18 + 0x13f8);\n        dStack_260 = pdVar6[5] - *pdVar6;\n        dStack_258 = pdVar6[6] - pdVar6[1];\n        if ((dVar61 <= ABS(dStack_260)) || (dVar61 <= ABS(dStack_258))) {\n          iVar38 = 1;\n        }\n        else {\n          iVar38 = 1;\n          pdVar7 = pdVar6 + 10;\n          do {\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));\n        }\nLAB_000a5110:\n        uVar4 = iVar29 * 2;\n        pdVar7 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        pdVar8 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        if (pdVar7 == (double *)0x0) {\n          if (pdVar8 != (double *)0x0) {\n            (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n          uVar26 = 0x1c93;\n          goto LAB_000a5724;\n        }\n        if (pdVar8 == (double *)0x0) {\n          (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n          goto LAB_000a6cbc;\n        }\n        if (ABS(dStack_260) < *(double *)(iVar18 + 0x13f8)) {\n          dVar61 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else if (ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)) {\n          dVar52 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }\nLAB_000a51b0:\n        dVar42 = (double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18);\n        iVar16 = *(int *)(param_2 + 0x24c) * *(int *)(param_2 + 0x24c);\n        dVar42 = dVar42 * *(double *)(param_2 + 0x1b0) *\n                 *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400);\n        dVar46 = (double)iVar16;\n        if (iVar16 < 0) {\n          dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418);\n        }\n        dVar46 = dVar46 * dVar42 * dVar42;\n        if (*(int *)(param_2 + 0x244) == 3) {\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            iVar16 = iVar29 + -2;\n            dVar50 = pdVar11[1];\n            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);\n            pdVar21 = pdVar6 + iVar16 * 5;\n            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            dVar50 = pdVar21[1];\n            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            goto LAB_000a5220;\n          }\n        }\n        else {\nLAB_000a5220:\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n        }\n        dVar43 = dVar42 * dVar42;\n        dVar53 = dVar43 / (dVar61 * dVar61 + *(double *)(iVar16 + 0x1438));\n        dVar64 = SQRT(dVar53);\n        if (dVar53 < 0.0) {\n          (**(code **)(puVar36 + 0x304770))();\n        }\n        dVar61 = dVar61 * dVar64;\n        pdVar11 = pdVar6 + iVar38 * 5;\n        dVar58 = *pdVar11;\n        dVar62 = pdVar11[1];\n        dVar57 = dVar61 + pdVar6[1];\n        dVar55 = pdVar6[1] - dVar61;\n        dVar53 = dVar64 + *pdVar6;\n        dStack_238 = dVar62 - dVar61;\n        dStack_240 = dVar58 - dVar64;\n        dVar56 = *pdVar6 - dVar64;\n        dVar51 = dVar56;\n        dVar50 = dVar57;\n        dStack_250 = dVar64 + dVar58;\n        dStack_248 = dVar61 + dVar62;\n        if (0.0 < dVar64 * dStack_258 - dVar61 * dStack_260) {\n          dVar51 = dVar53;\n          dVar50 = dVar55;\n          dVar53 = dVar56;\n          dVar55 = dVar57;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar64 + dVar58;\n          dStack_238 = dVar61 + dVar62;\n        }\n        iVar32 = iVar38 + 1;\n        *pdVar8 = dVar51;\n        pdVar8[1] = dVar55;\n        *pdVar7 = dVar53;\n        pdVar7[1] = dVar50;\n        if (iVar32 < iVar29) {\n          iVar20 = *(int *)(puVar36 + 0x303bd8);\n          iVar33 = 1;\n          iVar35 = 1;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78);\n          dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar4;\n          do {\n            dVar44 = pdVar11[6];\n            dVar47 = pdVar11[5];\n            dVar48 = dVar44 - dVar62;\n            dVar54 = dVar47 - dVar58;\n            dVar49 = dVar47 - dVar58;\n            dVar56 = dStack_238;\n            dVar57 = dStack_240;\n            dVar59 = dStack_248;\n            dVar63 = dStack_250;\n            if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar63;\n            dStack_248 = dVar59;\n            dStack_240 = dVar57;\n            dStack_238 = dVar56;\n            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;\n            pdVar11 = pdVar11 + 5;\n            iVar32 = iVar32 + 1;\n            dVar58 = pdVar6[iVar38 * 5];\n            dVar62 = (pdVar6 + iVar38 * 5)[1];\n          } while( true );\n        }\n        iVar38 = 4;\n        iVar32 = 0x10;\n        iVar35 = 0x10;\n        iVar29 = 2;\n        goto LAB_000a5a70;\n      }" { (if_statement "if (*(int *)(param_2 + 0x248) - 1U < 2) {\n          pdVar8 = pdStack_e8 + 5;\n          do {\n            pdVar21 = pdVar7;\n            pdVar11 = pdVar8;\n            pdVar8 = pdVar11 + 2;\n            uVar28 = *(undefined4 *)(pdVar11 + 1);\n            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n            uVar27 = *(undefined4 *)pdVar11;\n            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);\n            *(undefined4 *)(pdVar21 + 1) = uVar28;\n            *(undefined4 *)pdVar21 = uVar27;\n            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;\n            pdVar7 = pdVar21 + 2;\n          } while (pdVar8 != pdStack_e8 + 9);\n          iVar32 = iVar32 + 0x28;\n          uVar26 = *(undefined4 *)pdVar8;\n          pdVar7 = pdVar6 + iVar29 * 5 + 5;\n          *(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14);\n          *(undefined4 *)(pdVar21 + 2) = uVar26;\n          iVar29 = iVar29 + 1;\n        }" if (parenthesized_expression "(*(int *)(param_2 + 0x248) - 1U < 2)" ( (binary_expression "*(int *)(param_2 + 0x248) - 1U < 2" (binary_expression "*(int *)(param_2 + 0x248) - 1U" (pointer_expression "*(int *)(param_2 + 0x248)" * (cast_expression "(int *)(param_2 + 0x248)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x248)" ( (binary_expression "param_2 + 0x248" identifier + number_literal) )))) - number_literal) < number_literal) )) (compound_statement "{\n          pdVar8 = pdStack_e8 + 5;\n          do {\n            pdVar21 = pdVar7;\n            pdVar11 = pdVar8;\n            pdVar8 = pdVar11 + 2;\n            uVar28 = *(undefined4 *)(pdVar11 + 1);\n            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n            uVar27 = *(undefined4 *)pdVar11;\n            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);\n            *(undefined4 *)(pdVar21 + 1) = uVar28;\n            *(undefined4 *)pdVar21 = uVar27;\n            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;\n            pdVar7 = pdVar21 + 2;\n          } while (pdVar8 != pdStack_e8 + 9);\n          iVar32 = iVar32 + 0x28;\n          uVar26 = *(undefined4 *)pdVar8;\n          pdVar7 = pdVar6 + iVar29 * 5 + 5;\n          *(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14);\n          *(undefined4 *)(pdVar21 + 2) = uVar26;\n          iVar29 = iVar29 + 1;\n        }" { (expression_statement "pdVar8 = pdStack_e8 + 5;" (assignment_expression "pdVar8 = pdStack_e8 + 5" identifier = (binary_expression "pdStack_e8 + 5" identifier + number_literal)) ;) (do_statement "do {\n            pdVar21 = pdVar7;\n            pdVar11 = pdVar8;\n            pdVar8 = pdVar11 + 2;\n            uVar28 = *(undefined4 *)(pdVar11 + 1);\n            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n            uVar27 = *(undefined4 *)pdVar11;\n            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);\n            *(undefined4 *)(pdVar21 + 1) = uVar28;\n            *(undefined4 *)pdVar21 = uVar27;\n            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;\n            pdVar7 = pdVar21 + 2;\n          } while (pdVar8 != pdStack_e8 + 9);" do (compound_statement "{\n            pdVar21 = pdVar7;\n            pdVar11 = pdVar8;\n            pdVar8 = pdVar11 + 2;\n            uVar28 = *(undefined4 *)(pdVar11 + 1);\n            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n            uVar27 = *(undefined4 *)pdVar11;\n            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);\n            *(undefined4 *)(pdVar21 + 1) = uVar28;\n            *(undefined4 *)pdVar21 = uVar27;\n            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;\n            pdVar7 = pdVar21 + 2;\n          }" { (expression_statement "pdVar21 = pdVar7;" (assignment_expression "pdVar21 = pdVar7" identifier = identifier) ;) (expression_statement "pdVar11 = pdVar8;" (assignment_expression "pdVar11 = pdVar8" identifier = identifier) ;) (expression_statement "pdVar8 = pdVar11 + 2;" (assignment_expression "pdVar8 = pdVar11 + 2" identifier = (binary_expression "pdVar11 + 2" identifier + number_literal)) ;) (expression_statement "uVar28 = *(undefined4 *)(pdVar11 + 1);" (assignment_expression "uVar28 = *(undefined4 *)(pdVar11 + 1)" identifier = (pointer_expression "*(undefined4 *)(pdVar11 + 1)" * (cast_expression "(undefined4 *)(pdVar11 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar11 + 1)" ( (binary_expression "pdVar11 + 1" identifier + number_literal) ))))) ;) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar11 + 0xc)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar11 + 0xc)" * (cast_expression "(undefined4 *)((int)pdVar11 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar11 + 0xc)" ( (binary_expression "(int)pdVar11 + 0xc" (cast_expression "(int)pdVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar27 = *(undefined4 *)pdVar11;" (assignment_expression "uVar27 = *(undefined4 *)pdVar11" identifier = (pointer_expression "*(undefined4 *)pdVar11" * (cast_expression "(undefined4 *)pdVar11" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);" (assignment_expression "*(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4)" (pointer_expression "*(undefined4 *)((int)pdVar21 + 4)" * (cast_expression "(undefined4 *)((int)pdVar21 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar21 + 4)" ( (binary_expression "(int)pdVar21 + 4" (cast_expression "(int)pdVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pdVar11 + 4)" * (cast_expression "(undefined4 *)((int)pdVar11 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar11 + 4)" ( (binary_expression "(int)pdVar11 + 4" (cast_expression "(int)pdVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(pdVar21 + 1) = uVar28;" (assignment_expression "*(undefined4 *)(pdVar21 + 1) = uVar28" (pointer_expression "*(undefined4 *)(pdVar21 + 1)" * (cast_expression "(undefined4 *)(pdVar21 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar21 + 1)" ( (binary_expression "pdVar21 + 1" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)pdVar21 = uVar27;" (assignment_expression "*(undefined4 *)pdVar21 = uVar27" (pointer_expression "*(undefined4 *)pdVar21" * (cast_expression "(undefined4 *)pdVar21" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(undefined4 *)((int)pdVar21 + 0xc) = uVar26;" (assignment_expression "*(undefined4 *)((int)pdVar21 + 0xc) = uVar26" (pointer_expression "*(undefined4 *)((int)pdVar21 + 0xc)" * (cast_expression "(undefined4 *)((int)pdVar21 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar21 + 0xc)" ( (binary_expression "(int)pdVar21 + 0xc" (cast_expression "(int)pdVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pdVar7 = pdVar21 + 2;" (assignment_expression "pdVar7 = pdVar21 + 2" identifier = (binary_expression "pdVar21 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(pdVar8 != pdStack_e8 + 9)" ( (binary_expression "pdVar8 != pdStack_e8 + 9" identifier != (binary_expression "pdStack_e8 + 9" identifier + number_literal)) )) ;) (expression_statement "iVar32 = iVar32 + 0x28;" (assignment_expression "iVar32 = iVar32 + 0x28" identifier = (binary_expression "iVar32 + 0x28" identifier + number_literal)) ;) (expression_statement "uVar26 = *(undefined4 *)pdVar8;" (assignment_expression "uVar26 = *(undefined4 *)pdVar8" identifier = (pointer_expression "*(undefined4 *)pdVar8" * (cast_expression "(undefined4 *)pdVar8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pdVar7 = pdVar6 + iVar29 * 5 + 5;" (assignment_expression "pdVar7 = pdVar6 + iVar29 * 5 + 5" identifier = (binary_expression "pdVar6 + iVar29 * 5 + 5" (binary_expression "pdVar6 + iVar29 * 5" identifier + (binary_expression "iVar29 * 5" identifier * number_literal)) + number_literal)) ;) (expression_statement "*(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14);" (assignment_expression "*(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14)" (pointer_expression "*(undefined4 *)((int)pdVar21 + 0x14)" * (cast_expression "(undefined4 *)((int)pdVar21 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar21 + 0x14)" ( (binary_expression "(int)pdVar21 + 0x14" (cast_expression "(int)pdVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pdVar11 + 0x14)" * (cast_expression "(undefined4 *)((int)pdVar11 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar11 + 0x14)" ( (binary_expression "(int)pdVar11 + 0x14" (cast_expression "(int)pdVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(pdVar21 + 2) = uVar26;" (assignment_expression "*(undefined4 *)(pdVar21 + 2) = uVar26" (pointer_expression "*(undefined4 *)(pdVar21 + 2)" * (cast_expression "(undefined4 *)(pdVar21 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar21 + 2)" ( (binary_expression "pdVar21 + 2" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar29 = iVar29 + 1;" (assignment_expression "iVar29 = iVar29 + 1" identifier = (binary_expression "iVar29 + 1" identifier + number_literal)) ;) })) (expression_statement "iStack_188 = 1;" (assignment_expression "iStack_188 = 1" identifier = number_literal) ;) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "bVar1 = iVar29 < 2;" (assignment_expression "bVar1 = iVar29 < 2" identifier = (binary_expression "iVar29 < 2" identifier < number_literal)) ;) (expression_statement "*(undefined4 *)((int)pdVar7 + 0x14) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar7 + 0x14) = 0" (pointer_expression "*(undefined4 *)((int)pdVar7 + 0x14)" * (cast_expression "(undefined4 *)((int)pdVar7 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar7 + 0x14)" ( (binary_expression "(int)pdVar7 + 0x14" (cast_expression "(int)pdVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (if_statement "if (bVar1) goto LAB_000a6124;" if (parenthesized_expression "(bVar1)" ( identifier )) (goto_statement "goto LAB_000a6124;" goto statement_identifier ;)) (labeled_statement "LAB_000a4fe8:\n        dVar61 = *(double *)(iVar18 + 0x13f8);" statement_identifier : (expression_statement "dVar61 = *(double *)(iVar18 + 0x13f8);" (assignment_expression "dVar61 = *(double *)(iVar18 + 0x13f8)" identifier = (pointer_expression "*(double *)(iVar18 + 0x13f8)" * (cast_expression "(double *)(iVar18 + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x13f8)" ( (binary_expression "iVar18 + 0x13f8" identifier + number_literal) ))))) ;)) (expression_statement "dStack_260 = pdVar6[5] - *pdVar6;" (assignment_expression "dStack_260 = pdVar6[5] - *pdVar6" identifier = (binary_expression "pdVar6[5] - *pdVar6" (subscript_expression "pdVar6[5]" identifier [ number_literal ]) - (pointer_expression "*pdVar6" * identifier))) ;) (expression_statement "dStack_258 = pdVar6[6] - pdVar6[1];" (assignment_expression "dStack_258 = pdVar6[6] - pdVar6[1]" identifier = (binary_expression "pdVar6[6] - pdVar6[1]" (subscript_expression "pdVar6[6]" identifier [ number_literal ]) - (subscript_expression "pdVar6[1]" identifier [ number_literal ]))) ;) (if_statement "if ((dVar61 <= ABS(dStack_260)) || (dVar61 <= ABS(dStack_258))) {\n          iVar38 = 1;\n        }\n        else {\n          iVar38 = 1;\n          pdVar7 = pdVar6 + 10;\n          do {\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));\n        }" if (parenthesized_expression "((dVar61 <= ABS(dStack_260)) || (dVar61 <= ABS(dStack_258)))" ( (binary_expression "(dVar61 <= ABS(dStack_260)) || (dVar61 <= ABS(dStack_258))" (parenthesized_expression "(dVar61 <= ABS(dStack_260))" ( (binary_expression "dVar61 <= ABS(dStack_260)" identifier <= (call_expression "ABS(dStack_260)" identifier (argument_list "(dStack_260)" ( identifier )))) )) || (parenthesized_expression "(dVar61 <= ABS(dStack_258))" ( (binary_expression "dVar61 <= ABS(dStack_258)" identifier <= (call_expression "ABS(dStack_258)" identifier (argument_list "(dStack_258)" ( identifier )))) ))) )) (compound_statement "{\n          iVar38 = 1;\n        }" { (expression_statement "iVar38 = 1;" (assignment_expression "iVar38 = 1" identifier = number_literal) ;) }) (else_clause "else {\n          iVar38 = 1;\n          pdVar7 = pdVar6 + 10;\n          do {\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));\n        }" else (compound_statement "{\n          iVar38 = 1;\n          pdVar7 = pdVar6 + 10;\n          do {\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));\n        }" { (expression_statement "iVar38 = 1;" (assignment_expression "iVar38 = 1" identifier = number_literal) ;) (expression_statement "pdVar7 = pdVar6 + 10;" (assignment_expression "pdVar7 = pdVar6 + 10" identifier = (binary_expression "pdVar6 + 10" identifier + number_literal)) ;) (do_statement "do {\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));" do (compound_statement "{\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          }" { (expression_statement "iVar38 = iVar38 + 1;" (assignment_expression "iVar38 = iVar38 + 1" identifier = (binary_expression "iVar38 + 1" identifier + number_literal)) ;) (if_statement "if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }" if (parenthesized_expression "(iVar38 == iVar29)" ( (binary_expression "iVar38 == iVar29" identifier == identifier) )) (compound_statement "{\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }" { (expression_statement "iVar16 = *(int *)(param_2 + 0x244);" (assignment_expression "iVar16 = *(int *)(param_2 + 0x244)" identifier = (pointer_expression "*(int *)(param_2 + 0x244)" * (cast_expression "(int *)(param_2 + 0x244)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x244)" ( (binary_expression "param_2 + 0x244" identifier + number_literal) ))))) ;) (expression_statement "iVar38 = iVar29;" (assignment_expression "iVar38 = iVar29" identifier = identifier) ;) (goto_statement "goto joined_r0x000a50f8;" goto statement_identifier ;) })) (expression_statement "dStack_260 = *pdVar7 - *pdVar6;" (assignment_expression "dStack_260 = *pdVar7 - *pdVar6" identifier = (binary_expression "*pdVar7 - *pdVar6" (pointer_expression "*pdVar7" * identifier) - (pointer_expression "*pdVar6" * identifier))) ;) (expression_statement "dStack_258 = pdVar7[1] - pdVar6[1];" (assignment_expression "dStack_258 = pdVar7[1] - pdVar6[1]" identifier = (binary_expression "pdVar7[1] - pdVar6[1]" (subscript_expression "pdVar7[1]" identifier [ number_literal ]) - (subscript_expression "pdVar6[1]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61))" ( (binary_expression "(ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61)" (parenthesized_expression "(ABS(dStack_260) < dVar61)" ( (binary_expression "ABS(dStack_260) < dVar61" (call_expression "ABS(dStack_260)" identifier (argument_list "(dStack_260)" ( identifier ))) < identifier) )) && (parenthesized_expression "(pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61)" ( (comma_expression "pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61" (assignment_expression "pdVar7 = pdVar7 + 5" identifier = (binary_expression "pdVar7 + 5" identifier + number_literal)) , (binary_expression "ABS(dStack_258) < dVar61" (call_expression "ABS(dStack_258)" identifier (argument_list "(dStack_258)" ( identifier ))) < identifier)) ))) )) ;) }))) (labeled_statement "LAB_000a5110:\n        uVar4 = iVar29 * 2;" statement_identifier : (expression_statement "uVar4 = iVar29 * 2;" (assignment_expression "uVar4 = iVar29 * 2" identifier = (binary_expression "iVar29 * 2" identifier * number_literal)) ;)) (expression_statement "pdVar7 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);" (assignment_expression "pdVar7 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10)" identifier = (cast_expression "(double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10)" (parenthesized_expression "(**(code **)(puVar36 + 0x3047fc))" ( (pointer_expression "**(code **)(puVar36 + 0x3047fc)" * (pointer_expression "*(code **)(puVar36 + 0x3047fc)" * (cast_expression "(code **)(puVar36 + 0x3047fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3047fc)" ( (binary_expression "puVar36 + 0x3047fc" identifier + number_literal) ))))) )) (argument_list "(uVar4 + 0x618,0x10)" ( (binary_expression "uVar4 + 0x618" identifier + number_literal) , number_literal ))))) ;) (expression_statement "pdVar8 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);" (assignment_expression "pdVar8 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10)" identifier = (cast_expression "(double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10)" (parenthesized_expression "(**(code **)(puVar36 + 0x3047fc))" ( (pointer_expression "**(code **)(puVar36 + 0x3047fc)" * (pointer_expression "*(code **)(puVar36 + 0x3047fc)" * (cast_expression "(code **)(puVar36 + 0x3047fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3047fc)" ( (binary_expression "puVar36 + 0x3047fc" identifier + number_literal) ))))) )) (argument_list "(uVar4 + 0x618,0x10)" ( (binary_expression "uVar4 + 0x618" identifier + number_literal) , number_literal ))))) ;) (if_statement "if (pdVar7 == (double *)0x0) {\n          if (pdVar8 != (double *)0x0) {\n            (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n          uVar26 = 0x1c93;\n          goto LAB_000a5724;\n        }" if (parenthesized_expression "(pdVar7 == (double *)0x0)" ( (binary_expression "pdVar7 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (pdVar8 != (double *)0x0) {\n            (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n          uVar26 = 0x1c93;\n          goto LAB_000a5724;\n        }" { (if_statement "if (pdVar8 != (double *)0x0) {\n            (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n          }" if (parenthesized_expression "(pdVar8 != (double *)0x0)" ( (binary_expression "pdVar8 != (double *)0x0" identifier != (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n          }" { (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar8);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar8)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar36 + 0x3042b0)" * (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar8)" ( identifier ))) ;) })) (labeled_statement "LAB_000a6cbc:\n          (**(code **)(puVar36 + 0x3042b0))(pdVar6);" statement_identifier : (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar6);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar6)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar36 + 0x3042b0)" * (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar6)" ( identifier ))) ;)) (expression_statement "uVar26 = 0x1c93;" (assignment_expression "uVar26 = 0x1c93" identifier = number_literal) ;) (goto_statement "goto LAB_000a5724;" goto statement_identifier ;) })) (if_statement "if (pdVar8 == (double *)0x0) {\n          (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n          goto LAB_000a6cbc;\n        }" if (parenthesized_expression "(pdVar8 == (double *)0x0)" ( (binary_expression "pdVar8 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n          goto LAB_000a6cbc;\n        }" { (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar7);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar7)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar36 + 0x3042b0)" * (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar7)" ( identifier ))) ;) (goto_statement "goto LAB_000a6cbc;" goto statement_identifier ;) })) (if_statement "if (ABS(dStack_260) < *(double *)(iVar18 + 0x13f8)) {\n          dVar61 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else if (ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)) {\n          dVar52 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }" if (parenthesized_expression "(ABS(dStack_260) < *(double *)(iVar18 + 0x13f8))" ( (binary_expression "ABS(dStack_260) < *(double *)(iVar18 + 0x13f8)" (call_expression "ABS(dStack_260)" identifier (argument_list "(dStack_260)" ( identifier ))) < (pointer_expression "*(double *)(iVar18 + 0x13f8)" * (cast_expression "(double *)(iVar18 + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x13f8)" ( (binary_expression "iVar18 + 0x13f8" identifier + number_literal) ))))) )) (compound_statement "{\n          dVar61 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }" { (expression_statement "dVar61 = 0.0;" (assignment_expression "dVar61 = 0.0" identifier = number_literal) ;) (if_statement "if (0.0 <= dStack_260) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }" if (parenthesized_expression "(0.0 <= dStack_260)" ( (binary_expression "0.0 <= dStack_260" number_literal <= identifier) )) (compound_statement "{\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }" { (expression_statement "iVar16 = *(int *)(puVar36 + 0x303bd8);" (assignment_expression "iVar16 = *(int *)(puVar36 + 0x303bd8)" identifier = (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) ))))) ;) (if_statement "if (dStack_258 < 0.0) goto LAB_000a56e8;" if (parenthesized_expression "(dStack_258 < 0.0)" ( (binary_expression "dStack_258 < 0.0" identifier < number_literal) )) (goto_statement "goto LAB_000a56e8;" goto statement_identifier ;)) }) (else_clause "else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }" else (compound_statement "{\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }" { (expression_statement "iVar16 = *(int *)(puVar36 + 0x303bd8);" (assignment_expression "iVar16 = *(int *)(puVar36 + 0x303bd8)" identifier = (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) ))))) ;) (if_statement "if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }" if (parenthesized_expression "(0.0 <= dStack_258)" ( (binary_expression "0.0 <= dStack_258" number_literal <= identifier) )) (compound_statement "{\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }" { (labeled_statement "LAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);" statement_identifier : (expression_statement "dVar52 = *(double *)(iVar16 + 0x47d0);" (assignment_expression "dVar52 = *(double *)(iVar16 + 0x47d0)" identifier = (pointer_expression "*(double *)(iVar16 + 0x47d0)" * (cast_expression "(double *)(iVar16 + 0x47d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x47d0)" ( (binary_expression "iVar16 + 0x47d0" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_000a51b0;" goto statement_identifier ;) })) }))) (expression_statement "dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);" (assignment_expression "dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" identifier = (pointer_expression "*(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" * (cast_expression "(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" ( (binary_expression "*(int *)(puVar36 + 0x303bd0) + 0x1a68" (pointer_expression "*(int *)(puVar36 + 0x303bd0)" * (cast_expression "(int *)(puVar36 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd0)" ( (binary_expression "puVar36 + 0x303bd0" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else if (ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)) {\n          dVar52 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }" else (if_statement "if (ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)) {\n          dVar52 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }" if (parenthesized_expression "(ABS(dStack_258) < *(double *)(iVar18 + 0x13f8))" ( (binary_expression "ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)" (call_expression "ABS(dStack_258)" identifier (argument_list "(dStack_258)" ( identifier ))) < (pointer_expression "*(double *)(iVar18 + 0x13f8)" * (cast_expression "(double *)(iVar18 + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x13f8)" ( (binary_expression "iVar18 + 0x13f8" identifier + number_literal) ))))) )) (compound_statement "{\n          dVar52 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }" { (expression_statement "dVar52 = 0.0;" (assignment_expression "dVar52 = 0.0" identifier = number_literal) ;) (if_statement "if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }" if (parenthesized_expression "(0.0 <= dStack_258)" ( (binary_expression "0.0 <= dStack_258" number_literal <= identifier) )) (compound_statement "{\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }" { (expression_statement "iVar16 = *(int *)(puVar36 + 0x303bd8);" (assignment_expression "iVar16 = *(int *)(puVar36 + 0x303bd8)" identifier = (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) ))))) ;) (if_statement "if (dStack_260 < 0.0) goto LAB_000a684c;" if (parenthesized_expression "(dStack_260 < 0.0)" ( (binary_expression "dStack_260 < 0.0" identifier < number_literal) )) (goto_statement "goto LAB_000a684c;" goto statement_identifier ;)) }) (else_clause "else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }" else (compound_statement "{\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }" { (expression_statement "iVar16 = *(int *)(puVar36 + 0x303bd8);" (assignment_expression "iVar16 = *(int *)(puVar36 + 0x303bd8)" identifier = (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) ))))) ;) (if_statement "if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }" if (parenthesized_expression "(0.0 <= dStack_260)" ( (binary_expression "0.0 <= dStack_260" number_literal <= identifier) )) (compound_statement "{\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }" { (labeled_statement "LAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);" statement_identifier : (expression_statement "dVar61 = *(double *)(iVar16 + 0x47d0);" (assignment_expression "dVar61 = *(double *)(iVar16 + 0x47d0)" identifier = (pointer_expression "*(double *)(iVar16 + 0x47d0)" * (cast_expression "(double *)(iVar16 + 0x47d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x47d0)" ( (binary_expression "iVar16 + 0x47d0" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_000a51b0;" goto statement_identifier ;) })) }))) (expression_statement "dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);" (assignment_expression "dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" identifier = (pointer_expression "*(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" * (cast_expression "(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" ( (binary_expression "*(int *)(puVar36 + 0x303bd0) + 0x1a68" (pointer_expression "*(int *)(puVar36 + 0x303bd0)" * (cast_expression "(int *)(puVar36 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd0)" ( (binary_expression "puVar36 + 0x303bd0" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }" else (compound_statement "{\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }" { (expression_statement "dVar52 = dStack_258 / dStack_260;" (assignment_expression "dVar52 = dStack_258 / dStack_260" identifier = (binary_expression "dStack_258 / dStack_260" identifier / identifier)) ;) (expression_statement "dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;" (assignment_expression "dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52" identifier = (binary_expression "*(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52" (pointer_expression "*(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78)" * (cast_expression "(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + 0x303bd0) + 0x1a78)" ( (binary_expression "*(int *)(puVar36 + 0x303bd0) + 0x1a78" (pointer_expression "*(int *)(puVar36 + 0x303bd0)" * (cast_expression "(int *)(puVar36 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd0)" ( (binary_expression "puVar36 + 0x303bd0" identifier + number_literal) )))) + number_literal) )))) / identifier)) ;) }))))) (labeled_statement "LAB_000a51b0:\n        dVar42 = (double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18);" statement_identifier : (expression_statement "dVar42 = (double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18);" (assignment_expression "dVar42 = (double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18)" identifier = (cast_expression "(double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar36 + 0x304288))(param_2 + 0x18)" (parenthesized_expression "(**(code **)(puVar36 + 0x304288))" ( (pointer_expression "**(code **)(puVar36 + 0x304288)" * (pointer_expression "*(code **)(puVar36 + 0x304288)" * (cast_expression "(code **)(puVar36 + 0x304288)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304288)" ( (binary_expression "puVar36 + 0x304288" identifier + number_literal) ))))) )) (argument_list "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) ;)) (expression_statement "iVar16 = *(int *)(param_2 + 0x24c) * *(int *)(param_2 + 0x24c);" (assignment_expression "iVar16 = *(int *)(param_2 + 0x24c) * *(int *)(param_2 + 0x24c)" identifier = (binary_expression "*(int *)(param_2 + 0x24c) * *(int *)(param_2 + 0x24c)" (pointer_expression "*(int *)(param_2 + 0x24c)" * (cast_expression "(int *)(param_2 + 0x24c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x24c)" ( (binary_expression "param_2 + 0x24c" identifier + number_literal) )))) * (pointer_expression "*(int *)(param_2 + 0x24c)" * (cast_expression "(int *)(param_2 + 0x24c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x24c)" ( (binary_expression "param_2 + 0x24c" identifier + number_literal) )))))) ;) (expression_statement "dVar42 = dVar42 * *(double *)(param_2 + 0x1b0) *\n                 *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400);" (assignment_expression "dVar42 = dVar42 * *(double *)(param_2 + 0x1b0) *\n                 *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400)" identifier = (binary_expression "dVar42 * *(double *)(param_2 + 0x1b0) *\n                 *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400)" (binary_expression "dVar42 * *(double *)(param_2 + 0x1b0)" identifier * (pointer_expression "*(double *)(param_2 + 0x1b0)" * (cast_expression "(double *)(param_2 + 0x1b0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1b0)" ( (binary_expression "param_2 + 0x1b0" identifier + number_literal) ))))) * (pointer_expression "*(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400)" * (cast_expression "(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + 0x303bd0) + 0x1400)" ( (binary_expression "*(int *)(puVar36 + 0x303bd0) + 0x1400" (pointer_expression "*(int *)(puVar36 + 0x303bd0)" * (cast_expression "(int *)(puVar36 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd0)" ( (binary_expression "puVar36 + 0x303bd0" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "dVar46 = (double)iVar16;" (assignment_expression "dVar46 = (double)iVar16" identifier = (cast_expression "(double)iVar16" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar16 < 0) {\n          dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418);\n        }" if (parenthesized_expression "(iVar16 < 0)" ( (binary_expression "iVar16 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418);\n        }" { (expression_statement "dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418);" (assignment_expression "dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418)" identifier = (binary_expression "dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + 0x303bd0) + 0x1418)" ( (binary_expression "*(int *)(puVar36 + 0x303bd0) + 0x1418" (pointer_expression "*(int *)(puVar36 + 0x303bd0)" * (cast_expression "(int *)(puVar36 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd0)" ( (binary_expression "puVar36 + 0x303bd0" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar46 = dVar46 * dVar42 * dVar42;" (assignment_expression "dVar46 = dVar46 * dVar42 * dVar42" identifier = (binary_expression "dVar46 * dVar42 * dVar42" (binary_expression "dVar46 * dVar42" identifier * identifier) * identifier)) ;) (if_statement "if (*(int *)(param_2 + 0x244) == 3) {\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            iVar16 = iVar29 + -2;\n            dVar50 = pdVar11[1];\n            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);\n            pdVar21 = pdVar6 + iVar16 * 5;\n            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            dVar50 = pdVar21[1];\n            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            goto LAB_000a5220;\n          }\n        }\n        else {\nLAB_000a5220:\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n        }" if (parenthesized_expression "(*(int *)(param_2 + 0x244) == 3)" ( (binary_expression "*(int *)(param_2 + 0x244) == 3" (pointer_expression "*(int *)(param_2 + 0x244)" * (cast_expression "(int *)(param_2 + 0x244)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x244)" ( (binary_expression "param_2 + 0x244" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            iVar16 = iVar29 + -2;\n            dVar50 = pdVar11[1];\n            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);\n            pdVar21 = pdVar6 + iVar16 * 5;\n            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            dVar50 = pdVar21[1];\n            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            goto LAB_000a5220;\n          }\n        }" { (expression_statement "iVar16 = *(int *)(puVar36 + 0x303bd0);" (assignment_expression "iVar16 = *(int *)(puVar36 + 0x303bd0)" identifier = (pointer_expression "*(int *)(puVar36 + 0x303bd0)" * (cast_expression "(int *)(puVar36 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd0)" ( (binary_expression "puVar36 + 0x303bd0" identifier + number_literal) ))))) ;) (if_statement "if (!bVar2) {\n            if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            iVar16 = iVar29 + -2;\n            dVar50 = pdVar11[1];\n            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);\n            pdVar21 = pdVar6 + iVar16 * 5;\n            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            dVar50 = pdVar21[1];\n            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            goto LAB_000a5220;\n          }" if (parenthesized_expression "(!bVar2)" ( (unary_expression "!bVar2" ! identifier) )) (compound_statement "{\n            if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            iVar16 = iVar29 + -2;\n            dVar50 = pdVar11[1];\n            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);\n            pdVar21 = pdVar6 + iVar16 * 5;\n            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            dVar50 = pdVar21[1];\n            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            goto LAB_000a5220;\n          }" { (if_statement "if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }" { (expression_statement "dVar43 = 0.0;" (assignment_expression "dVar43 = 0.0" identifier = number_literal) ;) (if_statement "if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }" if (parenthesized_expression "(iVar29 == 1)" ( (binary_expression "iVar29 == 1" identifier == number_literal) )) (compound_statement "{\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }" { (expression_statement "dVar53 = 0.0;" (assignment_expression "dVar53 = 0.0" identifier = number_literal) ;) (expression_statement "iVar16 = 1;" (assignment_expression "iVar16 = 1" identifier = number_literal) ;) (labeled_statement "LAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;" statement_identifier : (expression_statement "pdVar11 = pdVar6 + (iVar16 + -1) * 5;" (assignment_expression "pdVar11 = pdVar6 + (iVar16 + -1) * 5" identifier = (binary_expression "pdVar6 + (iVar16 + -1) * 5" identifier + (binary_expression "(iVar16 + -1) * 5" (parenthesized_expression "(iVar16 + -1)" ( (binary_expression "iVar16 + -1" identifier + number_literal) )) * number_literal))) ;)) }) (else_clause "else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }" else (compound_statement "{\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }" { (expression_statement "pdVar11 = pdVar6 + 5;" (assignment_expression "pdVar11 = pdVar6 + 5" identifier = (binary_expression "pdVar6 + 5" identifier + number_literal)) ;) (expression_statement "dVar53 = 0.0;" (assignment_expression "dVar53 = 0.0" identifier = number_literal) ;) }))) }) (else_clause "else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }" else (compound_statement "{\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }" { (expression_statement "dVar64 = *(double *)(iVar18 + 0x13f8);" (assignment_expression "dVar64 = *(double *)(iVar18 + 0x13f8)" identifier = (pointer_expression "*(double *)(iVar18 + 0x13f8)" * (cast_expression "(double *)(iVar18 + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x13f8)" ( (binary_expression "iVar18 + 0x13f8" identifier + number_literal) ))))) ;) (expression_statement "dVar53 = *pdVar6 - pdVar6[5];" (assignment_expression "dVar53 = *pdVar6 - pdVar6[5]" identifier = (binary_expression "*pdVar6 - pdVar6[5]" (pointer_expression "*pdVar6" * identifier) - (subscript_expression "pdVar6[5]" identifier [ number_literal ]))) ;) (expression_statement "dVar43 = pdVar6[1] - pdVar6[6];" (assignment_expression "dVar43 = pdVar6[1] - pdVar6[6]" identifier = (binary_expression "pdVar6[1] - pdVar6[6]" (subscript_expression "pdVar6[1]" identifier [ number_literal ]) - (subscript_expression "pdVar6[6]" identifier [ number_literal ]))) ;) (if_statement "if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }" if (parenthesized_expression "((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43)))" ( (binary_expression "(dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))" (parenthesized_expression "(dVar64 <= ABS(dVar53))" ( (binary_expression "dVar64 <= ABS(dVar53)" identifier <= (call_expression "ABS(dVar53)" identifier (argument_list "(dVar53)" ( identifier )))) )) || (parenthesized_expression "(dVar64 <= ABS(dVar43))" ( (binary_expression "dVar64 <= ABS(dVar43)" identifier <= (call_expression "ABS(dVar43)" identifier (argument_list "(dVar43)" ( identifier )))) ))) )) (compound_statement "{\n                pdVar11 = pdVar6 + 5;\n              }" { (expression_statement "pdVar11 = pdVar6 + 5;" (assignment_expression "pdVar11 = pdVar6 + 5" identifier = (binary_expression "pdVar6 + 5" identifier + number_literal)) ;) }) (else_clause "else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }" else (compound_statement "{\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }" { (expression_statement "iVar33 = 1;" (assignment_expression "iVar33 = 1" identifier = number_literal) ;) (expression_statement "pdVar21 = pdVar6 + 10;" (assignment_expression "pdVar21 = pdVar6 + 10" identifier = (binary_expression "pdVar6 + 10" identifier + number_literal)) ;) (do_statement "do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));" do (compound_statement "{\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                }" { (expression_statement "pdVar11 = pdVar21;" (assignment_expression "pdVar11 = pdVar21" identifier = identifier) ;) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "iVar16 = iVar29;" (assignment_expression "iVar16 = iVar29" identifier = identifier) ;) (if_statement "if (iVar33 == iVar29) goto LAB_000a6998;" if (parenthesized_expression "(iVar33 == iVar29)" ( (binary_expression "iVar33 == iVar29" identifier == identifier) )) (goto_statement "goto LAB_000a6998;" goto statement_identifier ;)) (expression_statement "dVar53 = *pdVar6 - *pdVar11;" (assignment_expression "dVar53 = *pdVar6 - *pdVar11" identifier = (binary_expression "*pdVar6 - *pdVar11" (pointer_expression "*pdVar6" * identifier) - (pointer_expression "*pdVar11" * identifier))) ;) (expression_statement "dVar43 = pdVar6[1] - pdVar11[1];" (assignment_expression "dVar43 = pdVar6[1] - pdVar11[1]" identifier = (binary_expression "pdVar6[1] - pdVar11[1]" (subscript_expression "pdVar6[1]" identifier [ number_literal ]) - (subscript_expression "pdVar11[1]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64))" ( (binary_expression "(ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64)" (parenthesized_expression "(ABS(dVar53) < dVar64)" ( (binary_expression "ABS(dVar53) < dVar64" (call_expression "ABS(dVar53)" identifier (argument_list "(dVar53)" ( identifier ))) < identifier) )) && (parenthesized_expression "(pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64)" ( (comma_expression "pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64" (assignment_expression "pdVar21 = pdVar11 + 5" identifier = (binary_expression "pdVar11 + 5" identifier + number_literal)) , (binary_expression "ABS(dVar43) < dVar64" (call_expression "ABS(dVar43)" identifier (argument_list "(dVar43)" ( identifier ))) < identifier)) ))) )) ;) }))) }))) (expression_statement "dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);" (assignment_expression "dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43)" identifier = (cast_expression "(double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43)" (parenthesized_expression "(**(code **)(puVar36 + 0x304a08))" ( (pointer_expression "**(code **)(puVar36 + 0x304a08)" * (pointer_expression "*(code **)(puVar36 + 0x304a08)" * (cast_expression "(code **)(puVar36 + 0x304a08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304a08)" ( (binary_expression "puVar36 + 0x304a08" identifier + number_literal) ))))) )) (argument_list "(dVar53,dVar43)" ( identifier , identifier ))))) ;) (expression_statement "iVar16 = iVar29 + -2;" (assignment_expression "iVar16 = iVar29 + -2" identifier = (binary_expression "iVar29 + -2" identifier + number_literal)) ;) (expression_statement "dVar50 = pdVar11[1];" (assignment_expression "dVar50 = pdVar11[1]" identifier = (subscript_expression "pdVar11[1]" identifier [ number_literal ])) ;) (expression_statement "pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);" (assignment_expression "pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28)" identifier = (cast_expression "(double *)((int)pdVar6 + iVar32 + -0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar6 + iVar32 + -0x28)" ( (binary_expression "(int)pdVar6 + iVar32 + -0x28" (binary_expression "(int)pdVar6 + iVar32" (cast_expression "(int)pdVar6" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "pdVar21 = pdVar6 + iVar16 * 5;" (assignment_expression "pdVar21 = pdVar6 + iVar16 * 5" identifier = (binary_expression "pdVar6 + iVar16 * 5" identifier + (binary_expression "iVar16 * 5" identifier * number_literal))) ;) (expression_statement "*pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;" (assignment_expression "*pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64" (pointer_expression "*pdVar6" * identifier) = (binary_expression "*pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64" (pointer_expression "*pdVar11" * identifier) + (binary_expression "(dVar53 * (dVar42 + dVar64)) / dVar64" (parenthesized_expression "(dVar53 * (dVar42 + dVar64))" ( (binary_expression "dVar53 * (dVar42 + dVar64)" identifier * (parenthesized_expression "(dVar42 + dVar64)" ( (binary_expression "dVar42 + dVar64" identifier + identifier) ))) )) / identifier))) ;) (expression_statement "pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;" (assignment_expression "pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64" (subscript_expression "pdVar6[1]" identifier [ number_literal ]) = (binary_expression "dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64" identifier + (binary_expression "(dVar43 * (dVar42 + dVar64)) / dVar64" (parenthesized_expression "(dVar43 * (dVar42 + dVar64))" ( (binary_expression "dVar43 * (dVar42 + dVar64)" identifier * (parenthesized_expression "(dVar42 + dVar64)" ( (binary_expression "dVar42 + dVar64" identifier + identifier) ))) )) / identifier))) ;) (if_statement "if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }" if (parenthesized_expression "(-1 < iVar16)" ( (binary_expression "-1 < iVar16" number_literal < identifier) )) (compound_statement "{\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }" { (expression_statement "dVar64 = *(double *)(iVar18 + 0x13f8);" (assignment_expression "dVar64 = *(double *)(iVar18 + 0x13f8)" identifier = (pointer_expression "*(double *)(iVar18 + 0x13f8)" * (cast_expression "(double *)(iVar18 + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x13f8)" ( (binary_expression "iVar18 + 0x13f8" identifier + number_literal) ))))) ;) (expression_statement "dVar53 = *pdVar31 - *pdVar21;" (assignment_expression "dVar53 = *pdVar31 - *pdVar21" identifier = (binary_expression "*pdVar31 - *pdVar21" (pointer_expression "*pdVar31" * identifier) - (pointer_expression "*pdVar21" * identifier))) ;) (expression_statement "dVar43 = pdVar31[1] - pdVar21[1];" (assignment_expression "dVar43 = pdVar31[1] - pdVar21[1]" identifier = (binary_expression "pdVar31[1] - pdVar21[1]" (subscript_expression "pdVar31[1]" identifier [ number_literal ]) - (subscript_expression "pdVar21[1]" identifier [ number_literal ]))) ;) (if_statement "if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }" if (parenthesized_expression "(ABS(dVar53) < dVar64)" ( (binary_expression "ABS(dVar53) < dVar64" (call_expression "ABS(dVar53)" identifier (argument_list "(dVar53)" ( identifier ))) < identifier) )) (compound_statement "{\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }" { (expression_statement "pdVar11 = pdVar6 + (iVar29 + -3) * 5;" (assignment_expression "pdVar11 = pdVar6 + (iVar29 + -3) * 5" identifier = (binary_expression "pdVar6 + (iVar29 + -3) * 5" identifier + (binary_expression "(iVar29 + -3) * 5" (parenthesized_expression "(iVar29 + -3)" ( (binary_expression "iVar29 + -3" identifier + number_literal) )) * number_literal))) ;) (do_statement "do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);" do (compound_statement "{\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                }" { (expression_statement "pdVar21 = pdVar11;" (assignment_expression "pdVar21 = pdVar11" identifier = identifier) ;) (if_statement "if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }" if (parenthesized_expression "(dVar64 <= ABS(dVar43))" ( (binary_expression "dVar64 <= ABS(dVar43)" identifier <= (call_expression "ABS(dVar43)" identifier (argument_list "(dVar43)" ( identifier )))) )) (compound_statement "{\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }" { (expression_statement "pdVar21 = pdVar6 + iVar16 * 5;" (assignment_expression "pdVar21 = pdVar6 + iVar16 * 5" identifier = (binary_expression "pdVar6 + iVar16 * 5" identifier + (binary_expression "iVar16 * 5" identifier * number_literal))) ;) (break_statement "break;" break ;) })) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (if_statement "if (iVar16 == -1) break;" if (parenthesized_expression "(iVar16 == -1)" ( (binary_expression "iVar16 == -1" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "dVar53 = *pdVar31 - *pdVar21;" (assignment_expression "dVar53 = *pdVar31 - *pdVar21" identifier = (binary_expression "*pdVar31 - *pdVar21" (pointer_expression "*pdVar31" * identifier) - (pointer_expression "*pdVar21" * identifier))) ;) (expression_statement "dVar43 = pdVar31[1] - pdVar21[1];" (assignment_expression "dVar43 = pdVar31[1] - pdVar21[1]" identifier = (binary_expression "pdVar31[1] - pdVar21[1]" (subscript_expression "pdVar31[1]" identifier [ number_literal ]) - (subscript_expression "pdVar21[1]" identifier [ number_literal ]))) ;) (expression_statement "pdVar11 = pdVar21 + -5;" (assignment_expression "pdVar11 = pdVar21 + -5" identifier = (binary_expression "pdVar21 + -5" identifier + number_literal)) ;) }) while (parenthesized_expression "(ABS(dVar53) < dVar64)" ( (binary_expression "ABS(dVar53) < dVar64" (call_expression "ABS(dVar53)" identifier (argument_list "(dVar53)" ( identifier ))) < identifier) )) ;) })) })) (expression_statement "dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);" (assignment_expression "dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43)" identifier = (cast_expression "(double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43)" (parenthesized_expression "(**(code **)(puVar36 + 0x304a08))" ( (pointer_expression "**(code **)(puVar36 + 0x304a08)" * (pointer_expression "*(code **)(puVar36 + 0x304a08)" * (cast_expression "(code **)(puVar36 + 0x304a08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304a08)" ( (binary_expression "puVar36 + 0x304a08" identifier + number_literal) ))))) )) (argument_list "(dVar53,dVar43)" ( identifier , identifier ))))) ;) (expression_statement "dVar50 = pdVar21[1];" (assignment_expression "dVar50 = pdVar21[1]" identifier = (subscript_expression "pdVar21[1]" identifier [ number_literal ])) ;) (expression_statement "*pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;" (assignment_expression "*pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64" (pointer_expression "*pdVar31" * identifier) = (binary_expression "*pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64" (pointer_expression "*pdVar21" * identifier) + (binary_expression "(dVar53 * (dVar42 + dVar64)) / dVar64" (parenthesized_expression "(dVar53 * (dVar42 + dVar64))" ( (binary_expression "dVar53 * (dVar42 + dVar64)" identifier * (parenthesized_expression "(dVar42 + dVar64)" ( (binary_expression "dVar42 + dVar64" identifier + identifier) ))) )) / identifier))) ;) (expression_statement "pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;" (assignment_expression "pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64" (subscript_expression "pdVar31[1]" identifier [ number_literal ]) = (binary_expression "dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64" identifier + (binary_expression "(dVar43 * (dVar42 + dVar64)) / dVar64" (parenthesized_expression "(dVar43 * (dVar42 + dVar64))" ( (binary_expression "dVar43 * (dVar42 + dVar64)" identifier * (parenthesized_expression "(dVar42 + dVar64)" ( (binary_expression "dVar42 + dVar64" identifier + identifier) ))) )) / identifier))) ;) (goto_statement "goto LAB_000a5220;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_000a5220:\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n        }" else (compound_statement "{\nLAB_000a5220:\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n        }" { (labeled_statement "LAB_000a5220:\n          iVar16 = *(int *)(puVar36 + 0x303bd0);" statement_identifier : (expression_statement "iVar16 = *(int *)(puVar36 + 0x303bd0);" (assignment_expression "iVar16 = *(int *)(puVar36 + 0x303bd0)" identifier = (pointer_expression "*(int *)(puVar36 + 0x303bd0)" * (cast_expression "(int *)(puVar36 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd0)" ( (binary_expression "puVar36 + 0x303bd0" identifier + number_literal) ))))) ;)) }))) (expression_statement "dVar43 = dVar42 * dVar42;" (assignment_expression "dVar43 = dVar42 * dVar42" identifier = (binary_expression "dVar42 * dVar42" identifier * identifier)) ;) (expression_statement "dVar53 = dVar43 / (dVar61 * dVar61 + *(double *)(iVar16 + 0x1438));" (assignment_expression "dVar53 = dVar43 / (dVar61 * dVar61 + *(double *)(iVar16 + 0x1438))" identifier = (binary_expression "dVar43 / (dVar61 * dVar61 + *(double *)(iVar16 + 0x1438))" identifier / (parenthesized_expression "(dVar61 * dVar61 + *(double *)(iVar16 + 0x1438))" ( (binary_expression "dVar61 * dVar61 + *(double *)(iVar16 + 0x1438)" (binary_expression "dVar61 * dVar61" identifier * identifier) + (pointer_expression "*(double *)(iVar16 + 0x1438)" * (cast_expression "(double *)(iVar16 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x1438)" ( (binary_expression "iVar16 + 0x1438" identifier + number_literal) ))))) )))) ;) (expression_statement "dVar64 = SQRT(dVar53);" (assignment_expression "dVar64 = SQRT(dVar53)" identifier = (call_expression "SQRT(dVar53)" identifier (argument_list "(dVar53)" ( identifier )))) ;) (if_statement "if (dVar53 < 0.0) {\n          (**(code **)(puVar36 + 0x304770))();\n        }" if (parenthesized_expression "(dVar53 < 0.0)" ( (binary_expression "dVar53 < 0.0" identifier < number_literal) )) (compound_statement "{\n          (**(code **)(puVar36 + 0x304770))();\n        }" { (expression_statement "(**(code **)(puVar36 + 0x304770))();" (call_expression "(**(code **)(puVar36 + 0x304770))()" (parenthesized_expression "(**(code **)(puVar36 + 0x304770))" ( (pointer_expression "**(code **)(puVar36 + 0x304770)" * (pointer_expression "*(code **)(puVar36 + 0x304770)" * (cast_expression "(code **)(puVar36 + 0x304770)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304770)" ( (binary_expression "puVar36 + 0x304770" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "dVar61 = dVar61 * dVar64;" (assignment_expression "dVar61 = dVar61 * dVar64" identifier = (binary_expression "dVar61 * dVar64" identifier * identifier)) ;) (expression_statement "pdVar11 = pdVar6 + iVar38 * 5;" (assignment_expression "pdVar11 = pdVar6 + iVar38 * 5" identifier = (binary_expression "pdVar6 + iVar38 * 5" identifier + (binary_expression "iVar38 * 5" identifier * number_literal))) ;) (expression_statement "dVar58 = *pdVar11;" (assignment_expression "dVar58 = *pdVar11" identifier = (pointer_expression "*pdVar11" * identifier)) ;) (expression_statement "dVar62 = pdVar11[1];" (assignment_expression "dVar62 = pdVar11[1]" identifier = (subscript_expression "pdVar11[1]" identifier [ number_literal ])) ;) (expression_statement "dVar57 = dVar61 + pdVar6[1];" (assignment_expression "dVar57 = dVar61 + pdVar6[1]" identifier = (binary_expression "dVar61 + pdVar6[1]" identifier + (subscript_expression "pdVar6[1]" identifier [ number_literal ]))) ;) (expression_statement "dVar55 = pdVar6[1] - dVar61;" (assignment_expression "dVar55 = pdVar6[1] - dVar61" identifier = (binary_expression "pdVar6[1] - dVar61" (subscript_expression "pdVar6[1]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "dVar53 = dVar64 + *pdVar6;" (assignment_expression "dVar53 = dVar64 + *pdVar6" identifier = (binary_expression "dVar64 + *pdVar6" identifier + (pointer_expression "*pdVar6" * identifier))) ;) (expression_statement "dStack_238 = dVar62 - dVar61;" (assignment_expression "dStack_238 = dVar62 - dVar61" identifier = (binary_expression "dVar62 - dVar61" identifier - identifier)) ;) (expression_statement "dStack_240 = dVar58 - dVar64;" (assignment_expression "dStack_240 = dVar58 - dVar64" identifier = (binary_expression "dVar58 - dVar64" identifier - identifier)) ;) (expression_statement "dVar56 = *pdVar6 - dVar64;" (assignment_expression "dVar56 = *pdVar6 - dVar64" identifier = (binary_expression "*pdVar6 - dVar64" (pointer_expression "*pdVar6" * identifier) - identifier)) ;) (expression_statement "dVar51 = dVar56;" (assignment_expression "dVar51 = dVar56" identifier = identifier) ;) (expression_statement "dVar50 = dVar57;" (assignment_expression "dVar50 = dVar57" identifier = identifier) ;) (expression_statement "dStack_250 = dVar64 + dVar58;" (assignment_expression "dStack_250 = dVar64 + dVar58" identifier = (binary_expression "dVar64 + dVar58" identifier + identifier)) ;) (expression_statement "dStack_248 = dVar61 + dVar62;" (assignment_expression "dStack_248 = dVar61 + dVar62" identifier = (binary_expression "dVar61 + dVar62" identifier + identifier)) ;) (if_statement "if (0.0 < dVar64 * dStack_258 - dVar61 * dStack_260) {\n          dVar51 = dVar53;\n          dVar50 = dVar55;\n          dVar53 = dVar56;\n          dVar55 = dVar57;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar64 + dVar58;\n          dStack_238 = dVar61 + dVar62;\n        }" if (parenthesized_expression "(0.0 < dVar64 * dStack_258 - dVar61 * dStack_260)" ( (binary_expression "0.0 < dVar64 * dStack_258 - dVar61 * dStack_260" number_literal < (binary_expression "dVar64 * dStack_258 - dVar61 * dStack_260" (binary_expression "dVar64 * dStack_258" identifier * identifier) - (binary_expression "dVar61 * dStack_260" identifier * identifier))) )) (compound_statement "{\n          dVar51 = dVar53;\n          dVar50 = dVar55;\n          dVar53 = dVar56;\n          dVar55 = dVar57;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar64 + dVar58;\n          dStack_238 = dVar61 + dVar62;\n        }" { (expression_statement "dVar51 = dVar53;" (assignment_expression "dVar51 = dVar53" identifier = identifier) ;) (expression_statement "dVar50 = dVar55;" (assignment_expression "dVar50 = dVar55" identifier = identifier) ;) (expression_statement "dVar53 = dVar56;" (assignment_expression "dVar53 = dVar56" identifier = identifier) ;) (expression_statement "dVar55 = dVar57;" (assignment_expression "dVar55 = dVar57" identifier = identifier) ;) (expression_statement "dStack_250 = dStack_240;" (assignment_expression "dStack_250 = dStack_240" identifier = identifier) ;) (expression_statement "dStack_248 = dStack_238;" (assignment_expression "dStack_248 = dStack_238" identifier = identifier) ;) (expression_statement "dStack_240 = dVar64 + dVar58;" (assignment_expression "dStack_240 = dVar64 + dVar58" identifier = (binary_expression "dVar64 + dVar58" identifier + identifier)) ;) (expression_statement "dStack_238 = dVar61 + dVar62;" (assignment_expression "dStack_238 = dVar61 + dVar62" identifier = (binary_expression "dVar61 + dVar62" identifier + identifier)) ;) })) (expression_statement "iVar32 = iVar38 + 1;" (assignment_expression "iVar32 = iVar38 + 1" identifier = (binary_expression "iVar38 + 1" identifier + number_literal)) ;) (expression_statement "*pdVar8 = dVar51;" (assignment_expression "*pdVar8 = dVar51" (pointer_expression "*pdVar8" * identifier) = identifier) ;) (expression_statement "pdVar8[1] = dVar55;" (assignment_expression "pdVar8[1] = dVar55" (subscript_expression "pdVar8[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*pdVar7 = dVar53;" (assignment_expression "*pdVar7 = dVar53" (pointer_expression "*pdVar7" * identifier) = identifier) ;) (expression_statement "pdVar7[1] = dVar50;" (assignment_expression "pdVar7[1] = dVar50" (subscript_expression "pdVar7[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar32 < iVar29) {\n          iVar20 = *(int *)(puVar36 + 0x303bd8);\n          iVar33 = 1;\n          iVar35 = 1;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78);\n          dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar4;\n          do {\n            dVar44 = pdVar11[6];\n            dVar47 = pdVar11[5];\n            dVar48 = dVar44 - dVar62;\n            dVar54 = dVar47 - dVar58;\n            dVar49 = dVar47 - dVar58;\n            dVar56 = dStack_238;\n            dVar57 = dStack_240;\n            dVar59 = dStack_248;\n            dVar63 = dStack_250;\n            if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar63;\n            dStack_248 = dVar59;\n            dStack_240 = dVar57;\n            dStack_238 = dVar56;\n            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;\n            pdVar11 = pdVar11 + 5;\n            iVar32 = iVar32 + 1;\n            dVar58 = pdVar6[iVar38 * 5];\n            dVar62 = (pdVar6 + iVar38 * 5)[1];\n          } while( true );\n        }" if (parenthesized_expression "(iVar32 < iVar29)" ( (binary_expression "iVar32 < iVar29" identifier < identifier) )) (compound_statement "{\n          iVar20 = *(int *)(puVar36 + 0x303bd8);\n          iVar33 = 1;\n          iVar35 = 1;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78);\n          dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar4;\n          do {\n            dVar44 = pdVar11[6];\n            dVar47 = pdVar11[5];\n            dVar48 = dVar44 - dVar62;\n            dVar54 = dVar47 - dVar58;\n            dVar49 = dVar47 - dVar58;\n            dVar56 = dStack_238;\n            dVar57 = dStack_240;\n            dVar59 = dStack_248;\n            dVar63 = dStack_250;\n            if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar63;\n            dStack_248 = dVar59;\n            dStack_240 = dVar57;\n            dStack_238 = dVar56;\n            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;\n            pdVar11 = pdVar11 + 5;\n            iVar32 = iVar32 + 1;\n            dVar58 = pdVar6[iVar38 * 5];\n            dVar62 = (pdVar6 + iVar38 * 5)[1];\n          } while( true );\n        }" { (expression_statement "iVar20 = *(int *)(puVar36 + 0x303bd8);" (assignment_expression "iVar20 = *(int *)(puVar36 + 0x303bd8)" identifier = (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) ))))) ;) (expression_statement "iVar33 = 1;" (assignment_expression "iVar33 = 1" identifier = number_literal) ;) (expression_statement "iVar35 = 1;" (assignment_expression "iVar35 = 1" identifier = number_literal) ;) (expression_statement "dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78);" (assignment_expression "dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78)" identifier = (pointer_expression "*(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78)" * (cast_expression "(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + 0x303bd0) + 0x1a78)" ( (binary_expression "*(int *)(puVar36 + 0x303bd0) + 0x1a78" (pointer_expression "*(int *)(puVar36 + 0x303bd0)" * (cast_expression "(int *)(puVar36 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd0)" ( (binary_expression "puVar36 + 0x303bd0" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8);" (assignment_expression "dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8)" identifier = (pointer_expression "*(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8)" * (cast_expression "(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + 0x303bd8) + 0x47d8)" ( (binary_expression "*(int *)(puVar36 + 0x303bd8) + 0x47d8" (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uStack_22c = uVar4;" (assignment_expression "uStack_22c = uVar4" identifier = identifier) ;) (do_statement "do {\n            dVar44 = pdVar11[6];\n            dVar47 = pdVar11[5];\n            dVar48 = dVar44 - dVar62;\n            dVar54 = dVar47 - dVar58;\n            dVar49 = dVar47 - dVar58;\n            dVar56 = dStack_238;\n            dVar57 = dStack_240;\n            dVar59 = dStack_248;\n            dVar63 = dStack_250;\n            if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar63;\n            dStack_248 = dVar59;\n            dStack_240 = dVar57;\n            dStack_238 = dVar56;\n            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;\n            pdVar11 = pdVar11 + 5;\n            iVar32 = iVar32 + 1;\n            dVar58 = pdVar6[iVar38 * 5];\n            dVar62 = (pdVar6 + iVar38 * 5)[1];\n          } while( true );" do (compound_statement "{\n            dVar44 = pdVar11[6];\n            dVar47 = pdVar11[5];\n            dVar48 = dVar44 - dVar62;\n            dVar54 = dVar47 - dVar58;\n            dVar49 = dVar47 - dVar58;\n            dVar56 = dStack_238;\n            dVar57 = dStack_240;\n            dVar59 = dStack_248;\n            dVar63 = dStack_250;\n            if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar63;\n            dStack_248 = dVar59;\n            dStack_240 = dVar57;\n            dStack_238 = dVar56;\n            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;\n            pdVar11 = pdVar11 + 5;\n            iVar32 = iVar32 + 1;\n            dVar58 = pdVar6[iVar38 * 5];\n            dVar62 = (pdVar6 + iVar38 * 5)[1];\n          }" { (expression_statement "dVar44 = pdVar11[6];" (assignment_expression "dVar44 = pdVar11[6]" identifier = (subscript_expression "pdVar11[6]" identifier [ number_literal ])) ;) (expression_statement "dVar47 = pdVar11[5];" (assignment_expression "dVar47 = pdVar11[5]" identifier = (subscript_expression "pdVar11[5]" identifier [ number_literal ])) ;) (expression_statement "dVar48 = dVar44 - dVar62;" (assignment_expression "dVar48 = dVar44 - dVar62" identifier = (binary_expression "dVar44 - dVar62" identifier - identifier)) ;) (expression_statement "dVar54 = dVar47 - dVar58;" (assignment_expression "dVar54 = dVar47 - dVar58" identifier = (binary_expression "dVar47 - dVar58" identifier - identifier)) ;) (expression_statement "dVar49 = dVar47 - dVar58;" (assignment_expression "dVar49 = dVar47 - dVar58" identifier = (binary_expression "dVar47 - dVar58" identifier - identifier)) ;) (expression_statement "dVar56 = dStack_238;" (assignment_expression "dVar56 = dStack_238" identifier = identifier) ;) (expression_statement "dVar57 = dStack_240;" (assignment_expression "dVar57 = dStack_240" identifier = identifier) ;) (expression_statement "dVar59 = dStack_248;" (assignment_expression "dVar59 = dStack_248" identifier = identifier) ;) (expression_statement "dVar63 = dStack_250;" (assignment_expression "dVar63 = dStack_250" identifier = identifier) ;) (if_statement "if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }" if (parenthesized_expression "(*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62))" ( (binary_expression "*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)" (pointer_expression "*(double *)(iVar20 + -0x2e38)" * (cast_expression "(double *)(iVar20 + -0x2e38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + -0x2e38)" ( (binary_expression "iVar20 + -0x2e38" identifier + number_literal) )))) <= (binary_expression "dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)" (binary_expression "dVar54 * dVar54" identifier * identifier) + (binary_expression "(dVar44 - dVar62) * (dVar44 - dVar62)" (parenthesized_expression "(dVar44 - dVar62)" ( (binary_expression "dVar44 - dVar62" identifier - identifier) )) * (parenthesized_expression "(dVar44 - dVar62)" ( (binary_expression "dVar44 - dVar62" identifier - identifier) ))))) )) (compound_statement "{\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }" { (if_statement "if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }" if (parenthesized_expression "(ABS(dVar54) < *(double *)(iVar18 + 0x13f8))" ( (binary_expression "ABS(dVar54) < *(double *)(iVar18 + 0x13f8)" (call_expression "ABS(dVar54)" identifier (argument_list "(dVar54)" ( identifier ))) < (pointer_expression "*(double *)(iVar18 + 0x13f8)" * (cast_expression "(double *)(iVar18 + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x13f8)" ( (binary_expression "iVar18 + 0x13f8" identifier + number_literal) ))))) )) (compound_statement "{\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }" { (expression_statement "dVar56 = 0.0;" (assignment_expression "dVar56 = 0.0" identifier = number_literal) ;) (expression_statement "dVar57 = dVar43;" (assignment_expression "dVar57 = dVar43" identifier = identifier) ;) (if_statement "if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }" if (parenthesized_expression "(0.0 <= dVar54)" ( (binary_expression "0.0 <= dVar54" number_literal <= identifier) )) (compound_statement "{\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }" { (if_statement "if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;" if (parenthesized_expression "(0.0 <= dVar44 - dVar62)" ( (binary_expression "0.0 <= dVar44 - dVar62" number_literal <= (binary_expression "dVar44 - dVar62" identifier - identifier)) )) (goto_statement "goto LAB_000a53e0;" goto statement_identifier ;)) }) (else_clause "else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }" else (if_statement "if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }" if (parenthesized_expression "(dVar44 - dVar62 < 0.0)" ( (binary_expression "dVar44 - dVar62 < 0.0" (binary_expression "dVar44 - dVar62" identifier - identifier) < number_literal) )) (compound_statement "{\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }" { (labeled_statement "LAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);" statement_identifier : (expression_statement "dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);" (assignment_expression "dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" identifier = (pointer_expression "*(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" * (cast_expression "(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" ( (binary_expression "*(int *)(puVar36 + 0x303bd0) + 0x1a68" (pointer_expression "*(int *)(puVar36 + 0x303bd0)" * (cast_expression "(int *)(puVar36 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd0)" ( (binary_expression "puVar36 + 0x303bd0" identifier + number_literal) )))) + number_literal) ))))) ;)) (goto_statement "goto joined_r0x000a568c;" goto statement_identifier ;) })))) (expression_statement "dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);" (assignment_expression "dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0)" identifier = (pointer_expression "*(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0)" * (cast_expression "(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + 0x303bd8) + 0x47d0)" ( (binary_expression "*(int *)(puVar36 + 0x303bd8) + 0x47d0" (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }" else (if_statement "if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }" if (parenthesized_expression "(ABS(dVar48) < *(double *)(iVar18 + 0x13f8))" ( (binary_expression "ABS(dVar48) < *(double *)(iVar18 + 0x13f8)" (call_expression "ABS(dVar48)" identifier (argument_list "(dVar48)" ( identifier ))) < (pointer_expression "*(double *)(iVar18 + 0x13f8)" * (cast_expression "(double *)(iVar18 + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x13f8)" ( (binary_expression "iVar18 + 0x13f8" identifier + number_literal) ))))) )) (compound_statement "{\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }" { (expression_statement "dVar54 = 0.0;" (assignment_expression "dVar54 = 0.0" identifier = number_literal) ;) (expression_statement "dVar57 = dVar43 / dVar64;" (assignment_expression "dVar57 = dVar43 / dVar64" identifier = (binary_expression "dVar43 / dVar64" identifier / identifier)) ;) (if_statement "if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }" if (parenthesized_expression "(0.0 <= dVar44 - dVar62)" ( (binary_expression "0.0 <= dVar44 - dVar62" number_literal <= (binary_expression "dVar44 - dVar62" identifier - identifier)) )) (compound_statement "{\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }" { (expression_statement "iVar9 = *(int *)(puVar36 + 0x303bd8);" (assignment_expression "iVar9 = *(int *)(puVar36 + 0x303bd8)" identifier = (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) ))))) ;) (if_statement "if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;" if (parenthesized_expression "(dVar47 - dVar58 < 0.0)" ( (binary_expression "dVar47 - dVar58 < 0.0" (binary_expression "dVar47 - dVar58" identifier - identifier) < number_literal) )) (goto_statement "goto LAB_000a5880;" goto statement_identifier ;)) }) (else_clause "else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }" else (compound_statement "{\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }" { (expression_statement "iVar9 = *(int *)(puVar36 + 0x303bd8);" (assignment_expression "iVar9 = *(int *)(puVar36 + 0x303bd8)" identifier = (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) ))))) ;) (if_statement "if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }" if (parenthesized_expression "(0.0 <= dVar47 - dVar58)" ( (binary_expression "0.0 <= dVar47 - dVar58" number_literal <= (binary_expression "dVar47 - dVar58" identifier - identifier)) )) (compound_statement "{\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }" { (labeled_statement "LAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);" statement_identifier : (expression_statement "dVar56 = *(double *)(iVar9 + 0x47d0);" (assignment_expression "dVar56 = *(double *)(iVar9 + 0x47d0)" identifier = (pointer_expression "*(double *)(iVar9 + 0x47d0)" * (cast_expression "(double *)(iVar9 + 0x47d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x47d0)" ( (binary_expression "iVar9 + 0x47d0" identifier + number_literal) ))))) ;)) (goto_statement "goto joined_r0x000a568c;" goto statement_identifier ;) })) }))) (expression_statement "dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);" (assignment_expression "dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" identifier = (pointer_expression "*(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" * (cast_expression "(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" ( (binary_expression "*(int *)(puVar36 + 0x303bd0) + 0x1a68" (pointer_expression "*(int *)(puVar36 + 0x303bd0)" * (cast_expression "(int *)(puVar36 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd0)" ( (binary_expression "puVar36 + 0x303bd0" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }" else (compound_statement "{\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }" { (expression_statement "dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);" (assignment_expression "dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58)" identifier = (binary_expression "(dVar44 - dVar62) / (dVar47 - dVar58)" (parenthesized_expression "(dVar44 - dVar62)" ( (binary_expression "dVar44 - dVar62" identifier - identifier) )) / (parenthesized_expression "(dVar47 - dVar58)" ( (binary_expression "dVar47 - dVar58" identifier - identifier) )))) ;) (expression_statement "dVar56 = dVar61 / dVar54;" (assignment_expression "dVar56 = dVar61 / dVar54" identifier = (binary_expression "dVar61 / dVar54" identifier / identifier)) ;) (expression_statement "dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));" (assignment_expression "dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438))" identifier = (binary_expression "dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438))" identifier / (parenthesized_expression "(dVar56 * dVar56 + *(double *)(iVar16 + 0x1438))" ( (binary_expression "dVar56 * dVar56 + *(double *)(iVar16 + 0x1438)" (binary_expression "dVar56 * dVar56" identifier * identifier) + (pointer_expression "*(double *)(iVar16 + 0x1438)" * (cast_expression "(double *)(iVar16 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x1438)" ( (binary_expression "iVar16 + 0x1438" identifier + number_literal) ))))) )))) ;) }))))) (labeled_statement "joined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;" statement_identifier : (expression_statement "pdVar21 = pdVar6 + iVar38 * 5;" (assignment_expression "pdVar21 = pdVar6 + iVar38 * 5" identifier = (binary_expression "pdVar6 + iVar38 * 5" identifier + (binary_expression "iVar38 * 5" identifier * number_literal))) ;)) (expression_statement "dVar59 = SQRT(dVar57);" (assignment_expression "dVar59 = SQRT(dVar57)" identifier = (call_expression "SQRT(dVar57)" identifier (argument_list "(dVar57)" ( identifier )))) ;) (if_statement "if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }" if (parenthesized_expression "(dVar57 < 0.0)" ( (binary_expression "dVar57 < 0.0" identifier < number_literal) )) (compound_statement "{\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }" { (expression_statement "(**(code **)(puVar36 + 0x304770))();" (call_expression "(**(code **)(puVar36 + 0x304770))()" (parenthesized_expression "(**(code **)(puVar36 + 0x304770))" ( (pointer_expression "**(code **)(puVar36 + 0x304770)" * (pointer_expression "*(code **)(puVar36 + 0x304770)" * (cast_expression "(code **)(puVar36 + 0x304770)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304770)" ( (binary_expression "puVar36 + 0x304770" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "dVar58 = *pdVar21;" (assignment_expression "dVar58 = *pdVar21" identifier = (pointer_expression "*pdVar21" * identifier)) ;) (expression_statement "dVar62 = pdVar21[1];" (assignment_expression "dVar62 = pdVar21[1]" identifier = (subscript_expression "pdVar21[1]" identifier [ number_literal ])) ;) (expression_statement "dVar47 = pdVar11[5];" (assignment_expression "dVar47 = pdVar11[5]" identifier = (subscript_expression "pdVar11[5]" identifier [ number_literal ])) ;) (expression_statement "dVar44 = pdVar11[6];" (assignment_expression "dVar44 = pdVar11[6]" identifier = (subscript_expression "pdVar11[6]" identifier [ number_literal ])) ;) })) (expression_statement "dVar56 = dVar56 * dVar59;" (assignment_expression "dVar56 = dVar56 * dVar59" identifier = (binary_expression "dVar56 * dVar59" identifier * identifier)) ;) (expression_statement "dStack_2a8 = dVar47 - dVar59;" (assignment_expression "dStack_2a8 = dVar47 - dVar59" identifier = (binary_expression "dVar47 - dVar59" identifier - identifier)) ;) (expression_statement "dStack_2a0 = dVar44 - dVar56;" (assignment_expression "dStack_2a0 = dVar44 - dVar56" identifier = (binary_expression "dVar44 - dVar56" identifier - identifier)) ;) (expression_statement "dStack_278 = dVar58 - dVar59;" (assignment_expression "dStack_278 = dVar58 - dVar59" identifier = (binary_expression "dVar58 - dVar59" identifier - identifier)) ;) (expression_statement "dStack_270 = dVar62 - dVar56;" (assignment_expression "dStack_270 = dVar62 - dVar56" identifier = (binary_expression "dVar62 - dVar56" identifier - identifier)) ;) (expression_statement "dStack_2b8 = dVar59 + dVar47;" (assignment_expression "dStack_2b8 = dVar59 + dVar47" identifier = (binary_expression "dVar59 + dVar47" identifier + identifier)) ;) (expression_statement "dStack_2b0 = dVar56 + dVar44;" (assignment_expression "dStack_2b0 = dVar56 + dVar44" identifier = (binary_expression "dVar56 + dVar44" identifier + identifier)) ;) (expression_statement "dStack_288 = dVar59 + dVar58;" (assignment_expression "dStack_288 = dVar59 + dVar58" identifier = (binary_expression "dVar59 + dVar58" identifier + identifier)) ;) (expression_statement "dStack_280 = dVar56 + dVar62;" (assignment_expression "dStack_280 = dVar56 + dVar62" identifier = (binary_expression "dVar56 + dVar62" identifier + identifier)) ;) (if_statement "if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }" if (parenthesized_expression "(0.0 < dVar48 * dVar59 - dVar49 * dVar56)" ( (binary_expression "0.0 < dVar48 * dVar59 - dVar49 * dVar56" number_literal < (binary_expression "dVar48 * dVar59 - dVar49 * dVar56" (binary_expression "dVar48 * dVar59" identifier * identifier) - (binary_expression "dVar49 * dVar56" identifier * identifier))) )) (compound_statement "{\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }" { (expression_statement "dStack_2b8 = dStack_2a8;" (assignment_expression "dStack_2b8 = dStack_2a8" identifier = identifier) ;) (expression_statement "dStack_2b0 = dStack_2a0;" (assignment_expression "dStack_2b0 = dStack_2a0" identifier = identifier) ;) (expression_statement "dStack_2a8 = dVar59 + dVar47;" (assignment_expression "dStack_2a8 = dVar59 + dVar47" identifier = (binary_expression "dVar59 + dVar47" identifier + identifier)) ;) (expression_statement "dStack_2a0 = dVar56 + dVar44;" (assignment_expression "dStack_2a0 = dVar56 + dVar44" identifier = (binary_expression "dVar56 + dVar44" identifier + identifier)) ;) (expression_statement "dStack_288 = dStack_278;" (assignment_expression "dStack_288 = dStack_278" identifier = identifier) ;) (expression_statement "dStack_280 = dStack_270;" (assignment_expression "dStack_280 = dStack_270" identifier = identifier) ;) (expression_statement "dStack_278 = dVar59 + dVar58;" (assignment_expression "dStack_278 = dVar59 + dVar58" identifier = (binary_expression "dVar59 + dVar58" identifier + identifier)) ;) (expression_statement "dStack_270 = dVar56 + dVar62;" (assignment_expression "dStack_270 = dVar56 + dVar62" identifier = (binary_expression "dVar56 + dVar62" identifier + identifier)) ;) })) (expression_statement "dVar56 = dVar52 - dVar54;" (assignment_expression "dVar56 = dVar52 - dVar54" identifier = (binary_expression "dVar52 - dVar54" identifier - identifier)) ;) (expression_statement "dVar58 = dStack_250;" (assignment_expression "dVar58 = dStack_250" identifier = identifier) ;) (expression_statement "dVar62 = dStack_248;" (assignment_expression "dVar62 = dStack_248" identifier = identifier) ;) (expression_statement "dVar44 = dStack_238;" (assignment_expression "dVar44 = dStack_238" identifier = identifier) ;) (expression_statement "dVar47 = dStack_240;" (assignment_expression "dVar47 = dStack_240" identifier = identifier) ;) (if_statement "if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }" if (parenthesized_expression "(*(double *)(iVar18 + 0x13f8) <= ABS(dVar56))" ( (binary_expression "*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)" (pointer_expression "*(double *)(iVar18 + 0x13f8)" * (cast_expression "(double *)(iVar18 + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x13f8)" ( (binary_expression "iVar18 + 0x13f8" identifier + number_literal) )))) <= (call_expression "ABS(dVar56)" identifier (argument_list "(dVar56)" ( identifier )))) )) (compound_statement "{\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }" { (expression_statement "dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;" (assignment_expression "dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56" identifier = (binary_expression "(((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56" (parenthesized_expression "(((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0)" ( (binary_expression "((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0" (parenthesized_expression "((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8)" ( (binary_expression "(dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8" (parenthesized_expression "(dVar53 * dVar52 - dVar50)" ( (binary_expression "dVar53 * dVar52 - dVar50" (binary_expression "dVar53 * dVar52" identifier * identifier) - identifier) )) - (binary_expression "dVar54 * dStack_2b8" identifier * identifier)) )) + identifier) )) / identifier)) ;) (expression_statement "dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;" (assignment_expression "dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56" identifier = (binary_expression "(((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56" (parenthesized_expression "(((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0)" ( (binary_expression "((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0" (parenthesized_expression "((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8)" ( (binary_expression "(dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8" (parenthesized_expression "(dVar52 * dVar51 - dVar55)" ( (binary_expression "dVar52 * dVar51 - dVar55" (binary_expression "dVar52 * dVar51" identifier * identifier) - identifier) )) - (binary_expression "dVar54 * dStack_2a8" identifier * identifier)) )) + identifier) )) / identifier)) ;) (expression_statement "dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;" (assignment_expression "dVar62 = (dVar58 - dVar53) * dVar52 + dVar50" identifier = (binary_expression "(dVar58 - dVar53) * dVar52 + dVar50" (binary_expression "(dVar58 - dVar53) * dVar52" (parenthesized_expression "(dVar58 - dVar53)" ( (binary_expression "dVar58 - dVar53" identifier - identifier) )) * identifier) + identifier)) ;) (expression_statement "dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;" (assignment_expression "dVar44 = (dVar47 - dVar51) * dVar52 + dVar55" identifier = (binary_expression "(dVar47 - dVar51) * dVar52 + dVar55" (binary_expression "(dVar47 - dVar51) * dVar52" (parenthesized_expression "(dVar47 - dVar51)" ( (binary_expression "dVar47 - dVar51" identifier - identifier) )) * identifier) + identifier)) ;) })) (if_statement "if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }" if (parenthesized_expression "((int)uStack_22c <= iVar35 + 0x618)" ( (binary_expression "(int)uStack_22c <= iVar35 + 0x618" (cast_expression "(int)uStack_22c" ( (type_descriptor "int" primitive_type) ) identifier) <= (binary_expression "iVar35 + 0x618" identifier + number_literal)) )) (compound_statement "{\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }" { (if_statement "if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }" if (parenthesized_expression "(uStack_22c < 0xfffff9e8)" ( (binary_expression "uStack_22c < 0xfffff9e8" identifier < number_literal) )) (compound_statement "{\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }" { (expression_statement "pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);" (assignment_expression "pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10)" identifier = (cast_expression "(double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10)" (parenthesized_expression "(**(code **)(puVar36 + 0x304710))" ( (pointer_expression "**(code **)(puVar36 + 0x304710)" * (pointer_expression "*(code **)(puVar36 + 0x304710)" * (cast_expression "(code **)(puVar36 + 0x304710)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304710)" ( (binary_expression "puVar36 + 0x304710" identifier + number_literal) ))))) )) (argument_list "(pdVar7,uStack_22c + 0xc30,0x10)" ( identifier , (binary_expression "uStack_22c + 0xc30" identifier + number_literal) , number_literal ))))) ;) (expression_statement "uStack_22c = uStack_22c + 0x618;" (assignment_expression "uStack_22c = uStack_22c + 0x618" identifier = (binary_expression "uStack_22c + 0x618" identifier + number_literal)) ;) }) (else_clause "else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }" else (compound_statement "{\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }" { (expression_statement "pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);" (assignment_expression "pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7)" identifier = (cast_expression "(double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar7)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar36 + 0x3042b0)" * (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar7)" ( identifier ))))) ;) }))) })) (if_statement "if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }" if (parenthesized_expression "(iVar33 + 0x618 < (int)uVar4)" ( (binary_expression "iVar33 + 0x618 < (int)uVar4" (binary_expression "iVar33 + 0x618" identifier + number_literal) < (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }" { (if_statement "if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }" if (parenthesized_expression "(pdVar7 == (double *)0x0)" ( (binary_expression "pdVar7 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }" { (labeled_statement "LAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);" statement_identifier : (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar8);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar8)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar36 + 0x3042b0)" * (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar8)" ( identifier ))) ;)) (labeled_statement "LAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);" statement_identifier : (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042b0);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042b0)" identifier = (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_000a5714;" goto statement_identifier ;) })) }) (else_clause "else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }" else (compound_statement "{\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }" { (if_statement "if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }" if (parenthesized_expression "(0xfffff9e7 < uVar4)" ( (binary_expression "0xfffff9e7 < uVar4" number_literal < identifier) )) (compound_statement "{\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }" { (expression_statement "pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);" (assignment_expression "pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8)" identifier = (cast_expression "(double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar8)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar36 + 0x3042b0)" * (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar8)" ( identifier ))))) ;) (if_statement "if (pdVar7 != (double *)0x0) goto LAB_000a5594;" if (parenthesized_expression "(pdVar7 != (double *)0x0)" ( (binary_expression "pdVar7 != (double *)0x0" identifier != (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000a5594;" goto statement_identifier ;)) (labeled_statement "LAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;" statement_identifier : (if_statement "if (pdVar8 != (double *)0x0) goto LAB_000a5700;" if (parenthesized_expression "(pdVar8 != (double *)0x0)" ( (binary_expression "pdVar8 != (double *)0x0" identifier != (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000a5700;" goto statement_identifier ;))) (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042b0);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042b0)" identifier = (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000a5714:\n                  (*pcVar37)(pdVar6);" statement_identifier : (expression_statement "(*pcVar37)(pdVar6);" (call_expression "(*pcVar37)(pdVar6)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(pdVar6)" ( identifier ))) ;)) (expression_statement "uVar26 = 0x1d17;" (assignment_expression "uVar26 = 0x1d17" identifier = number_literal) ;) (goto_statement "goto LAB_000a5724;" goto statement_identifier ;) })) (expression_statement "pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);" (assignment_expression "pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10)" identifier = (cast_expression "(double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10)" (parenthesized_expression "(**(code **)(puVar36 + 0x304710))" ( (pointer_expression "**(code **)(puVar36 + 0x304710)" * (pointer_expression "*(code **)(puVar36 + 0x304710)" * (cast_expression "(code **)(puVar36 + 0x304710)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304710)" ( (binary_expression "puVar36 + 0x304710" identifier + number_literal) ))))) )) (argument_list "(pdVar8,uVar4 + 0xc30,0x10)" ( identifier , (binary_expression "uVar4 + 0xc30" identifier + number_literal) , number_literal ))))) ;) (expression_statement "uVar4 = uVar4 + 0x618;" (assignment_expression "uVar4 = uVar4 + 0x618" identifier = (binary_expression "uVar4 + 0x618" identifier + number_literal)) ;) (if_statement "if (pdVar7 == (double *)0x0) goto LAB_000a598c;" if (parenthesized_expression "(pdVar7 == (double *)0x0)" ( (binary_expression "pdVar7 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000a598c;" goto statement_identifier ;)) (labeled_statement "LAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }" statement_identifier : (if_statement "if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }" if (parenthesized_expression "(pdVar8 == (double *)0x0)" ( (binary_expression "pdVar8 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }" { (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar7);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar7)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar36 + 0x3042b0)" * (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar7)" ( identifier ))) ;) (goto_statement "goto LAB_000a5710;" goto statement_identifier ;) }))) }))) (expression_statement "iVar9 = *(int *)(param_2 + 0x248);" (assignment_expression "iVar9 = *(int *)(param_2 + 0x248)" identifier = (pointer_expression "*(int *)(param_2 + 0x248)" * (cast_expression "(int *)(param_2 + 0x248)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x248)" ( (binary_expression "param_2 + 0x248" identifier + number_literal) ))))) ;) (expression_statement "dVar51 = dStack_278;" (assignment_expression "dVar51 = dStack_278" identifier = identifier) ;) (expression_statement "dVar50 = dStack_280;" (assignment_expression "dVar50 = dStack_280" identifier = identifier) ;) (expression_statement "dVar53 = dStack_288;" (assignment_expression "dVar53 = dStack_288" identifier = identifier) ;) (expression_statement "dVar55 = dStack_270;" (assignment_expression "dVar55 = dStack_270" identifier = identifier) ;) (expression_statement "iVar38 = iVar32;" (assignment_expression "iVar38 = iVar32" identifier = identifier) ;) (expression_statement "dVar52 = dVar54;" (assignment_expression "dVar52 = dVar54" identifier = identifier) ;) (if_statement "if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }" if (parenthesized_expression "(dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0)" ( (binary_expression "dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0" (binary_expression "dVar49 * dStack_258 - dVar48 * dStack_260" (binary_expression "dVar49 * dStack_258" identifier * identifier) - (binary_expression "dVar48 * dStack_260" identifier * identifier)) <= number_literal) )) (compound_statement "{\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }" { (if_statement "if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }" if (parenthesized_expression "(iVar9 != 2)" ( (binary_expression "iVar9 != 2" identifier != number_literal) )) (compound_statement "{\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }" { (if_statement "if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }" if (parenthesized_expression "(iVar9 == 3)" ( (binary_expression "iVar9 == 3" identifier == number_literal) )) (compound_statement "{\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }" { (expression_statement "pdVar21 = pdVar7 + iVar35 * 2;" (assignment_expression "pdVar21 = pdVar7 + iVar35 * 2" identifier = (binary_expression "pdVar7 + iVar35 * 2" identifier + (binary_expression "iVar35 * 2" identifier * number_literal))) ;) (expression_statement "pdVar8[iVar33 * 2] = dStack_240;" (assignment_expression "pdVar8[iVar33 * 2] = dStack_240" (subscript_expression "pdVar8[iVar33 * 2]" identifier [ (binary_expression "iVar33 * 2" identifier * number_literal) ]) = identifier) ;) (expression_statement "(pdVar8 + iVar33 * 2)[1] = dStack_238;" (assignment_expression "(pdVar8 + iVar33 * 2)[1] = dStack_238" (subscript_expression "(pdVar8 + iVar33 * 2)[1]" (parenthesized_expression "(pdVar8 + iVar33 * 2)" ( (binary_expression "pdVar8 + iVar33 * 2" identifier + (binary_expression "iVar33 * 2" identifier * number_literal)) )) [ number_literal ]) = identifier) ;) (expression_statement "pdVar8[iVar33 * 2 + 2] = dStack_278;" (assignment_expression "pdVar8[iVar33 * 2 + 2] = dStack_278" (subscript_expression "pdVar8[iVar33 * 2 + 2]" identifier [ (binary_expression "iVar33 * 2 + 2" (binary_expression "iVar33 * 2" identifier * number_literal) + number_literal) ]) = identifier) ;) (expression_statement "(pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;" (assignment_expression "(pdVar8 + iVar33 * 2 + 2)[1] = dStack_270" (subscript_expression "(pdVar8 + iVar33 * 2 + 2)[1]" (parenthesized_expression "(pdVar8 + iVar33 * 2 + 2)" ( (binary_expression "pdVar8 + iVar33 * 2 + 2" (binary_expression "pdVar8 + iVar33 * 2" identifier + (binary_expression "iVar33 * 2" identifier * number_literal)) + number_literal) )) [ number_literal ]) = identifier) ;) (if_statement "if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }" if (parenthesized_expression "((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46)" ( (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46" (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62)" (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58)" (parenthesized_expression "(dVar47 - dVar58)" ( (binary_expression "dVar47 - dVar58" identifier - identifier) )) * (parenthesized_expression "(dVar47 - dVar58)" ( (binary_expression "dVar47 - dVar58" identifier - identifier) ))) + (binary_expression "(dVar44 - dVar62) * (dVar44 - dVar62)" (parenthesized_expression "(dVar44 - dVar62)" ( (binary_expression "dVar44 - dVar62" identifier - identifier) )) * (parenthesized_expression "(dVar44 - dVar62)" ( (binary_expression "dVar44 - dVar62" identifier - identifier) )))) <= identifier) )) (compound_statement "{\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }" { (expression_statement "*pdVar21 = dVar58;" (assignment_expression "*pdVar21 = dVar58" (pointer_expression "*pdVar21" * identifier) = identifier) ;) (expression_statement "pdVar21[1] = dVar62;" (assignment_expression "pdVar21[1] = dVar62" (subscript_expression "pdVar21[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "dStack_258 = dVar48;" (assignment_expression "dStack_258 = dVar48" identifier = identifier) ;) (expression_statement "dStack_260 = dVar49;" (assignment_expression "dStack_260 = dVar49" identifier = identifier) ;) (expression_statement "dVar56 = dStack_2a0;" (assignment_expression "dVar56 = dStack_2a0" identifier = identifier) ;) (expression_statement "dVar57 = dStack_2a8;" (assignment_expression "dVar57 = dStack_2a8" identifier = identifier) ;) (expression_statement "dVar59 = dStack_2b0;" (assignment_expression "dVar59 = dStack_2b0" identifier = identifier) ;) (expression_statement "dVar63 = dStack_2b8;" (assignment_expression "dVar63 = dStack_2b8" identifier = identifier) ;) (expression_statement "iVar33 = iVar33 + 2;" (assignment_expression "iVar33 = iVar33 + 2" identifier = (binary_expression "iVar33 + 2" identifier + number_literal)) ;) (expression_statement "iVar35 = iVar35 + 1;" (assignment_expression "iVar35 = iVar35 + 1" identifier = (binary_expression "iVar35 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }" else (compound_statement "{\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }" { (expression_statement "*pdVar21 = dStack_250;" (assignment_expression "*pdVar21 = dStack_250" (pointer_expression "*pdVar21" * identifier) = identifier) ;) (expression_statement "pdVar21[1] = dStack_248;" (assignment_expression "pdVar21[1] = dStack_248" (subscript_expression "pdVar21[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pdVar7[iVar35 * 2 + 2] = dStack_288;" (assignment_expression "pdVar7[iVar35 * 2 + 2] = dStack_288" (subscript_expression "pdVar7[iVar35 * 2 + 2]" identifier [ (binary_expression "iVar35 * 2 + 2" (binary_expression "iVar35 * 2" identifier * number_literal) + number_literal) ]) = identifier) ;) (expression_statement "(pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;" (assignment_expression "(pdVar7 + iVar35 * 2 + 2)[1] = dStack_280" (subscript_expression "(pdVar7 + iVar35 * 2 + 2)[1]" (parenthesized_expression "(pdVar7 + iVar35 * 2 + 2)" ( (binary_expression "pdVar7 + iVar35 * 2 + 2" (binary_expression "pdVar7 + iVar35 * 2" identifier + (binary_expression "iVar35 * 2" identifier * number_literal)) + number_literal) )) [ number_literal ]) = identifier) ;) (expression_statement "dStack_258 = dVar48;" (assignment_expression "dStack_258 = dVar48" identifier = identifier) ;) (expression_statement "dStack_260 = dVar49;" (assignment_expression "dStack_260 = dVar49" identifier = identifier) ;) (expression_statement "dVar56 = dStack_2a0;" (assignment_expression "dVar56 = dStack_2a0" identifier = identifier) ;) (expression_statement "dVar57 = dStack_2a8;" (assignment_expression "dVar57 = dStack_2a8" identifier = identifier) ;) (expression_statement "dVar59 = dStack_2b0;" (assignment_expression "dVar59 = dStack_2b0" identifier = identifier) ;) (expression_statement "dVar63 = dStack_2b8;" (assignment_expression "dVar63 = dStack_2b8" identifier = identifier) ;) (expression_statement "iVar33 = iVar33 + 2;" (assignment_expression "iVar33 = iVar33 + 2" identifier = (binary_expression "iVar33 + 2" identifier + number_literal)) ;) (expression_statement "iVar35 = iVar35 + 2;" (assignment_expression "iVar35 = iVar35 + 2" identifier = (binary_expression "iVar35 + 2" identifier + number_literal)) ;) }))) }) (else_clause "else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }" else (compound_statement "{\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }" { (expression_statement "dStack_258 = dVar48;" (assignment_expression "dStack_258 = dVar48" identifier = identifier) ;) (expression_statement "dStack_260 = dVar49;" (assignment_expression "dStack_260 = dVar49" identifier = identifier) ;) (expression_statement "dVar56 = dStack_2a0;" (assignment_expression "dVar56 = dStack_2a0" identifier = identifier) ;) (expression_statement "dVar57 = dStack_2a8;" (assignment_expression "dVar57 = dStack_2a8" identifier = identifier) ;) (expression_statement "dVar59 = dStack_2b0;" (assignment_expression "dVar59 = dStack_2b0" identifier = identifier) ;) (expression_statement "dVar63 = dStack_2b8;" (assignment_expression "dVar63 = dStack_2b8" identifier = identifier) ;) (if_statement "if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }" if (parenthesized_expression "(iVar9 == 1)" ( (binary_expression "iVar9 == 1" identifier == number_literal) )) (compound_statement "{\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }" { (expression_statement "pdVar21 = pdVar7 + iVar35 * 2;" (assignment_expression "pdVar21 = pdVar7 + iVar35 * 2" identifier = (binary_expression "pdVar7 + iVar35 * 2" identifier + (binary_expression "iVar35 * 2" identifier * number_literal))) ;) (expression_statement "pdVar31 = pdVar8 + iVar33 * 2;" (assignment_expression "pdVar31 = pdVar8 + iVar33 * 2" identifier = (binary_expression "pdVar8 + iVar33 * 2" identifier + (binary_expression "iVar33 * 2" identifier * number_literal))) ;) (if_statement "if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;" if (parenthesized_expression "(dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62))" ( (binary_expression "dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)" identifier < (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)" (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58)" (parenthesized_expression "(dVar47 - dVar58)" ( (binary_expression "dVar47 - dVar58" identifier - identifier) )) * (parenthesized_expression "(dVar47 - dVar58)" ( (binary_expression "dVar47 - dVar58" identifier - identifier) ))) + (binary_expression "(dVar44 - dVar62) * (dVar44 - dVar62)" (parenthesized_expression "(dVar44 - dVar62)" ( (binary_expression "dVar44 - dVar62" identifier - identifier) )) * (parenthesized_expression "(dVar44 - dVar62)" ( (binary_expression "dVar44 - dVar62" identifier - identifier) ))))) )) (goto_statement "goto LAB_000a607c;" goto statement_identifier ;)) (labeled_statement "LAB_000a58dc:\n                      iVar33 = iVar33 + 1;" statement_identifier : (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;)) (expression_statement "iVar35 = iVar35 + 1;" (assignment_expression "iVar35 = iVar35 + 1" identifier = (binary_expression "iVar35 + 1" identifier + number_literal)) ;) (expression_statement "*pdVar31 = dVar47;" (assignment_expression "*pdVar31 = dVar47" (pointer_expression "*pdVar31" * identifier) = identifier) ;) (expression_statement "pdVar31[1] = dVar44;" (assignment_expression "pdVar31[1] = dVar44" (subscript_expression "pdVar31[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*pdVar21 = dVar58;" (assignment_expression "*pdVar21 = dVar58" (pointer_expression "*pdVar21" * identifier) = identifier) ;) (expression_statement "pdVar21[1] = dVar62;" (assignment_expression "pdVar21[1] = dVar62" (subscript_expression "pdVar21[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "dStack_258 = dVar48;" (assignment_expression "dStack_258 = dVar48" identifier = identifier) ;) (expression_statement "dStack_260 = dVar49;" (assignment_expression "dStack_260 = dVar49" identifier = identifier) ;) (expression_statement "dVar56 = dStack_2a0;" (assignment_expression "dVar56 = dStack_2a0" identifier = identifier) ;) (expression_statement "dVar57 = dStack_2a8;" (assignment_expression "dVar57 = dStack_2a8" identifier = identifier) ;) (expression_statement "dVar59 = dStack_2b0;" (assignment_expression "dVar59 = dStack_2b0" identifier = identifier) ;) (expression_statement "dVar63 = dStack_2b8;" (assignment_expression "dVar63 = dStack_2b8" identifier = identifier) ;) })) }))) (goto_statement "goto joined_r0x000a5a50;" goto statement_identifier ;) })) (expression_statement "iVar9 = iVar35 + 1;" (assignment_expression "iVar9 = iVar35 + 1" identifier = (binary_expression "iVar35 + 1" identifier + number_literal)) ;) (expression_statement "pdVar31 = pdVar7 + iVar35 * 2;" (assignment_expression "pdVar31 = pdVar7 + iVar35 * 2" identifier = (binary_expression "pdVar7 + iVar35 * 2" identifier + (binary_expression "iVar35 * 2" identifier * number_literal))) ;) (if_statement "if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }" if (parenthesized_expression "((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46)" ( (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46" (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62)" (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58)" (parenthesized_expression "(dVar47 - dVar58)" ( (binary_expression "dVar47 - dVar58" identifier - identifier) )) * (parenthesized_expression "(dVar47 - dVar58)" ( (binary_expression "dVar47 - dVar58" identifier - identifier) ))) + (binary_expression "(dVar44 - dVar62) * (dVar44 - dVar62)" (parenthesized_expression "(dVar44 - dVar62)" ( (binary_expression "dVar44 - dVar62" identifier - identifier) )) * (parenthesized_expression "(dVar44 - dVar62)" ( (binary_expression "dVar44 - dVar62" identifier - identifier) )))) <= identifier) )) (compound_statement "{\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }" { (expression_statement "*pdVar31 = dVar58;" (assignment_expression "*pdVar31 = dVar58" (pointer_expression "*pdVar31" * identifier) = identifier) ;) (expression_statement "pdVar31[1] = dVar62;" (assignment_expression "pdVar31[1] = dVar62" (subscript_expression "pdVar31[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }" else (compound_statement "{\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }" { (expression_statement "iVar9 = iVar35 + 2;" (assignment_expression "iVar9 = iVar35 + 2" identifier = (binary_expression "iVar35 + 2" identifier + number_literal)) ;) (expression_statement "*pdVar31 = dStack_250;" (assignment_expression "*pdVar31 = dStack_250" (pointer_expression "*pdVar31" * identifier) = identifier) ;) (expression_statement "pdVar31[1] = dStack_248;" (assignment_expression "pdVar31[1] = dStack_248" (subscript_expression "pdVar31[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pdVar7[iVar35 * 2 + 2] = dStack_288;" (assignment_expression "pdVar7[iVar35 * 2 + 2] = dStack_288" (subscript_expression "pdVar7[iVar35 * 2 + 2]" identifier [ (binary_expression "iVar35 * 2 + 2" (binary_expression "iVar35 * 2" identifier * number_literal) + number_literal) ]) = identifier) ;) (expression_statement "(pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;" (assignment_expression "(pdVar7 + iVar35 * 2 + 2)[1] = dStack_280" (subscript_expression "(pdVar7 + iVar35 * 2 + 2)[1]" (parenthesized_expression "(pdVar7 + iVar35 * 2 + 2)" ( (binary_expression "pdVar7 + iVar35 * 2 + 2" (binary_expression "pdVar7 + iVar35 * 2" identifier + (binary_expression "iVar35 * 2" identifier * number_literal)) + number_literal) )) [ number_literal ]) = identifier) ;) }))) (expression_statement "dVar58 = *pdVar21;" (assignment_expression "dVar58 = *pdVar21" identifier = (pointer_expression "*pdVar21" * identifier)) ;) (expression_statement "dVar57 = pdVar21[1];" (assignment_expression "dVar57 = pdVar21[1]" identifier = (subscript_expression "pdVar21[1]" identifier [ number_literal ])) ;) (expression_statement "dVar52 = dVar57;" (assignment_expression "dVar52 = dVar57" identifier = identifier) ;) (expression_statement "dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);" (assignment_expression "dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58)" identifier = (cast_expression "(double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042f8))" ( (pointer_expression "**(code **)(puVar36 + 0x3042f8)" * (pointer_expression "*(code **)(puVar36 + 0x3042f8)" * (cast_expression "(code **)(puVar36 + 0x3042f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042f8)" ( (binary_expression "puVar36 + 0x3042f8" identifier + number_literal) ))))) )) (argument_list "(dStack_238 - dVar57,dStack_240 - dVar58)" ( (binary_expression "dStack_238 - dVar57" identifier - identifier) , (binary_expression "dStack_240 - dVar58" identifier - identifier) ))))) ;) (expression_statement "dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);" (assignment_expression "dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58)" identifier = (cast_expression "(double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042f8))" ( (pointer_expression "**(code **)(puVar36 + 0x3042f8)" * (pointer_expression "*(code **)(puVar36 + 0x3042f8)" * (cast_expression "(code **)(puVar36 + 0x3042f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042f8)" ( (binary_expression "puVar36 + 0x3042f8" identifier + number_literal) ))))) )) (argument_list "(dStack_270 - dVar52,dStack_278 - dVar58)" ( (binary_expression "dStack_270 - dVar52" identifier - identifier) , (binary_expression "dStack_278 - dVar58" identifier - identifier) ))))) ;) (if_statement "if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }" if (parenthesized_expression "(dVar52 < dVar56)" ( (binary_expression "dVar52 < dVar56" identifier < identifier) )) (compound_statement "{\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }" { (expression_statement "dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);" (assignment_expression "dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0)" identifier = (binary_expression "dVar52 + *(double *)(iVar19 + 0x34a0)" identifier + (pointer_expression "*(double *)(iVar19 + 0x34a0)" * (cast_expression "(double *)(iVar19 + 0x34a0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x34a0)" ( (binary_expression "iVar19 + 0x34a0" identifier + number_literal) )))))) ;) })) (expression_statement "dVar52 = dVar52 - dVar56;" (assignment_expression "dVar52 = dVar52 - dVar56" identifier = (binary_expression "dVar52 - dVar56" identifier - identifier)) ;) (expression_statement "dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;" (assignment_expression "dVar62 = *(double *)(iVar16 + 0x1438) / dVar42" identifier = (binary_expression "*(double *)(iVar16 + 0x1438) / dVar42" (pointer_expression "*(double *)(iVar16 + 0x1438)" * (cast_expression "(double *)(iVar16 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x1438)" ( (binary_expression "iVar16 + 0x1438" identifier + number_literal) )))) / identifier)) ;) (expression_statement "dVar59 = SQRT(dVar62);" (assignment_expression "dVar59 = SQRT(dVar62)" identifier = (call_expression "SQRT(dVar62)" identifier (argument_list "(dVar62)" ( identifier )))) ;) (if_statement "if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }" if (parenthesized_expression "(dVar62 < 0.0)" ( (binary_expression "dVar62 < 0.0" identifier < number_literal) )) (compound_statement "{\n                  (**(code **)(puVar36 + 0x304770))();\n                }" { (expression_statement "(**(code **)(puVar36 + 0x304770))();" (call_expression "(**(code **)(puVar36 + 0x304770))()" (parenthesized_expression "(**(code **)(puVar36 + 0x304770))" ( (pointer_expression "**(code **)(puVar36 + 0x304770)" * (pointer_expression "*(code **)(puVar36 + 0x304770)" * (cast_expression "(code **)(puVar36 + 0x304770)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304770)" ( (binary_expression "puVar36 + 0x304770" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));" (assignment_expression "dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59))" identifier = (cast_expression "(double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59))" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59))" (parenthesized_expression "(**(code **)(puVar36 + 0x303f10))" ( (pointer_expression "**(code **)(puVar36 + 0x303f10)" * (pointer_expression "*(code **)(puVar36 + 0x303f10)" * (cast_expression "(code **)(puVar36 + 0x303f10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x303f10)" ( (binary_expression "puVar36 + 0x303f10" identifier + number_literal) ))))) )) (argument_list "(dVar52 / (dVar59 + dVar59))" ( (binary_expression "dVar52 / (dVar59 + dVar59)" identifier / (parenthesized_expression "(dVar59 + dVar59)" ( (binary_expression "dVar59 + dVar59" identifier + identifier) ))) ))))) ;) (expression_statement "dVar59 = *(double *)(iVar15 + 0x1410);" (assignment_expression "dVar59 = *(double *)(iVar15 + 0x1410)" identifier = (pointer_expression "*(double *)(iVar15 + 0x1410)" * (cast_expression "(double *)(iVar15 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x1410)" ( (binary_expression "iVar15 + 0x1410" identifier + number_literal) ))))) ;) (if_statement "if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }" if (parenthesized_expression "(dVar62 < dVar59)" ( (binary_expression "dVar62 < dVar59" identifier < identifier) )) (compound_statement "{\n                  uVar14 = (uint)dVar62;\n                }" { (expression_statement "uVar14 = (uint)dVar62;" (assignment_expression "uVar14 = (uint)dVar62" identifier = (cast_expression "(uint)dVar62" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }" else (compound_statement "{\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }" { (expression_statement "uVar14 = (int)(dVar62 - dVar59) | 0x80000000;" (assignment_expression "uVar14 = (int)(dVar62 - dVar59) | 0x80000000" identifier = (binary_expression "(int)(dVar62 - dVar59) | 0x80000000" (cast_expression "(int)(dVar62 - dVar59)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar62 - dVar59)" ( (binary_expression "dVar62 - dVar59" identifier - identifier) ))) | number_literal)) ;) }))) (if_statement "if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }" if (parenthesized_expression "((int)uStack_22c <= iVar9 + 0x618)" ( (binary_expression "(int)uStack_22c <= iVar9 + 0x618" (cast_expression "(int)uStack_22c" ( (type_descriptor "int" primitive_type) ) identifier) <= (binary_expression "iVar9 + 0x618" identifier + number_literal)) )) (compound_statement "{\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }" { (if_statement "if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }" if (parenthesized_expression "(uStack_22c < 0xfffff9e8)" ( (binary_expression "uStack_22c < 0xfffff9e8" identifier < number_literal) )) (compound_statement "{\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }" { (expression_statement "iVar35 = uStack_22c + 0xc30;" (assignment_expression "iVar35 = uStack_22c + 0xc30" identifier = (binary_expression "uStack_22c + 0xc30" identifier + number_literal)) ;) (expression_statement "uStack_22c = uStack_22c + 0x618;" (assignment_expression "uStack_22c = uStack_22c + 0x618" identifier = (binary_expression "uStack_22c + 0x618" identifier + number_literal)) ;) (expression_statement "pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);" (assignment_expression "pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10)" identifier = (cast_expression "(double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10)" (parenthesized_expression "(**(code **)(puVar36 + 0x304710))" ( (pointer_expression "**(code **)(puVar36 + 0x304710)" * (pointer_expression "*(code **)(puVar36 + 0x304710)" * (cast_expression "(code **)(puVar36 + 0x304710)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304710)" ( (binary_expression "puVar36 + 0x304710" identifier + number_literal) ))))) )) (argument_list "(pdVar7,iVar35,0x10)" ( identifier , identifier , number_literal ))))) ;) }) (else_clause "else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }" else (compound_statement "{\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }" { (expression_statement "pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);" (assignment_expression "pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7)" identifier = (cast_expression "(double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar7)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar36 + 0x3042b0)" * (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar7)" ( identifier ))))) ;) }))) })) (if_statement "if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }" if (parenthesized_expression "(uVar14 + 0x618 < 0x4000001)" ( (binary_expression "uVar14 + 0x618 < 0x4000001" (binary_expression "uVar14 + 0x618" identifier + number_literal) < number_literal) )) (compound_statement "{\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }" { (if_statement "if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }" if (parenthesized_expression "((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14))" ( (binary_expression "(int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)(iVar33 + 0x618 + uVar14)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar33 + 0x618 + uVar14)" ( (binary_expression "iVar33 + 0x618 + uVar14" (binary_expression "iVar33 + 0x618" identifier + number_literal) + identifier) )))) )) (compound_statement "{\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }" { (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042b0);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042b0)" identifier = (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) ;) (if_statement "if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;" if (parenthesized_expression "(~uVar4 < uVar14 + 0x618)" ( (binary_expression "~uVar4 < uVar14 + 0x618" (unary_expression "~uVar4" ~ identifier) < (binary_expression "uVar14 + 0x618" identifier + number_literal)) )) (goto_statement "goto LAB_000a67d4;" goto statement_identifier ;)) (expression_statement "iVar35 = uVar14 + uVar4;" (assignment_expression "iVar35 = uVar14 + uVar4" identifier = (binary_expression "uVar14 + uVar4" identifier + identifier)) ;) (expression_statement "uVar4 = iVar35 + 0x618;" (assignment_expression "uVar4 = iVar35 + 0x618" identifier = (binary_expression "iVar35 + 0x618" identifier + number_literal)) ;) (expression_statement "pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;" (assignment_expression "pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)" identifier = (cast_expression "(double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)" (parenthesized_expression "(**(code **)(puVar36 + 0x304710))" ( (pointer_expression "**(code **)(puVar36 + 0x304710)" * (pointer_expression "*(code **)(puVar36 + 0x304710)" * (cast_expression "(code **)(puVar36 + 0x304710)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304710)" ( (binary_expression "puVar36 + 0x304710" identifier + number_literal) ))))) )) (argument_list "(pdVar8,iVar35 + 0xc30,0x10)" ( identifier , (binary_expression "iVar35 + 0xc30" identifier + number_literal) , number_literal ))))) ;) (goto_statement "goto LAB_000a64c4;" goto statement_identifier ;) })) (if_statement "if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }" if (parenthesized_expression "(pdVar7 == (double *)0x0)" ( (binary_expression "pdVar7 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }" { (labeled_statement "LAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);" statement_identifier : (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar8);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar8)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar36 + 0x3042b0)" * (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar8)" ( identifier ))) ;)) (labeled_statement "LAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);" statement_identifier : (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042b0);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042b0)" identifier = (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_000a6d30;" goto statement_identifier ;) })) }) (else_clause "else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }" else (compound_statement "{\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }" { (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042b0);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042b0)" identifier = (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);" statement_identifier : (expression_statement "pdVar8 = (double *)(*pcVar37)(pdVar8);" (assignment_expression "pdVar8 = (double *)(*pcVar37)(pdVar8)" identifier = (cast_expression "(double *)(*pcVar37)(pdVar8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar37)(pdVar8)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(pdVar8)" ( identifier ))))) ;)) (labeled_statement "LAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }" statement_identifier : (if_statement "if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }" if (parenthesized_expression "(pdVar7 == (double *)0x0)" ( (binary_expression "pdVar7 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }" { (if_statement "if (pdVar8 != (double *)0x0) goto LAB_000a6884;" if (parenthesized_expression "(pdVar8 != (double *)0x0)" ( (binary_expression "pdVar8 != (double *)0x0" identifier != (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000a6884;" goto statement_identifier ;)) (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042b0);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042b0)" identifier = (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000a6d30:\n                    (*pcVar37)(pdVar6);" statement_identifier : (expression_statement "(*pcVar37)(pdVar6);" (call_expression "(*pcVar37)(pdVar6)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(pdVar6)" ( identifier ))) ;)) (expression_statement "uVar26 = 0x1d4f;" (assignment_expression "uVar26 = 0x1d4f" identifier = number_literal) ;) (goto_statement "goto LAB_000a5724;" goto statement_identifier ;) }))) (if_statement "if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }" if (parenthesized_expression "(pdVar8 == (double *)0x0)" ( (binary_expression "pdVar8 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }" { (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar7);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar7)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar36 + 0x3042b0)" * (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar7)" ( identifier ))) ;) (goto_statement "goto LAB_000a6d2c;" goto statement_identifier ;) })) }))) (expression_statement "pdVar21 = pdVar8 + iVar33 * 2;" (assignment_expression "pdVar21 = pdVar8 + iVar33 * 2" identifier = (binary_expression "pdVar8 + iVar33 * 2" identifier + (binary_expression "iVar33 * 2" identifier * number_literal))) ;) (expression_statement "*pdVar21 = dStack_240;" (assignment_expression "*pdVar21 = dStack_240" (pointer_expression "*pdVar21" * identifier) = identifier) ;) (expression_statement "pdVar21[1] = dStack_238;" (assignment_expression "pdVar21[1] = dStack_238" (subscript_expression "pdVar21[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }" if (parenthesized_expression "(1 < (int)uVar14)" ( (binary_expression "1 < (int)uVar14" number_literal < (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }" { (expression_statement "uVar60 = *(undefined8 *)(iVar19 + 0x34a0);" (assignment_expression "uVar60 = *(undefined8 *)(iVar19 + 0x34a0)" identifier = (pointer_expression "*(undefined8 *)(iVar19 + 0x34a0)" * (cast_expression "(undefined8 *)(iVar19 + 0x34a0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x34a0)" ( (binary_expression "iVar19 + 0x34a0" identifier + number_literal) ))))) ;) (expression_statement "uVar30 = 1;" (assignment_expression "uVar30 = 1" identifier = number_literal) ;) (do_statement "do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);" do (compound_statement "{\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  }" { (expression_statement "uVar34 = uVar30 + 1;" (assignment_expression "uVar34 = uVar30 + 1" identifier = (binary_expression "uVar30 + 1" identifier + number_literal)) ;) (expression_statement "dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;" (assignment_expression "dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56" identifier = (binary_expression "((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56" (binary_expression "((double)(int)uVar30 * dVar52) / (double)(int)uVar14" (parenthesized_expression "((double)(int)uVar30 * dVar52)" ( (binary_expression "(double)(int)uVar30 * dVar52" (cast_expression "(double)(int)uVar30" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)uVar30" ( (type_descriptor "int" primitive_type) ) identifier)) * identifier) )) / (cast_expression "(double)(int)uVar14" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier))) + identifier)) ;) (expression_statement "uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);" (assignment_expression "uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60)" identifier = (call_expression "(**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60)" (parenthesized_expression "(**(code **)(puVar36 + 0x304ca8))" ( (pointer_expression "**(code **)(puVar36 + 0x304ca8)" * (pointer_expression "*(code **)(puVar36 + 0x304ca8)" * (cast_expression "(code **)(puVar36 + 0x304ca8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304ca8)" ( (binary_expression "puVar36 + 0x304ca8" identifier + number_literal) ))))) )) (argument_list "(dVar59,uVar60)" ( identifier , identifier )))) ;) (expression_statement "dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);" (assignment_expression "dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45)" identifier = (cast_expression "(double)(**(code **)(puVar36 + 0x304608))(uVar45)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar36 + 0x304608))(uVar45)" (parenthesized_expression "(**(code **)(puVar36 + 0x304608))" ( (pointer_expression "**(code **)(puVar36 + 0x304608)" * (pointer_expression "*(code **)(puVar36 + 0x304608)" * (cast_expression "(code **)(puVar36 + 0x304608)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304608)" ( (binary_expression "puVar36 + 0x304608" identifier + number_literal) ))))) )) (argument_list "(uVar45)" ( identifier ))))) ;) (expression_statement "pcVar37 = *(code **)(puVar36 + 0x304ca8);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x304ca8)" identifier = (pointer_expression "*(code **)(puVar36 + 0x304ca8)" * (cast_expression "(code **)(puVar36 + 0x304ca8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304ca8)" ( (binary_expression "puVar36 + 0x304ca8" identifier + number_literal) ))))) ;) (expression_statement "pdVar21[2] = dVar42 * dVar62 + dVar58;" (assignment_expression "pdVar21[2] = dVar42 * dVar62 + dVar58" (subscript_expression "pdVar21[2]" identifier [ number_literal ]) = (binary_expression "dVar42 * dVar62 + dVar58" (binary_expression "dVar42 * dVar62" identifier * identifier) + identifier)) ;) (expression_statement "uVar45 = (*pcVar37)(dVar59,uVar60);" (assignment_expression "uVar45 = (*pcVar37)(dVar59,uVar60)" identifier = (call_expression "(*pcVar37)(dVar59,uVar60)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(dVar59,uVar60)" ( identifier , identifier )))) ;) (expression_statement "dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);" (assignment_expression "dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45)" identifier = (cast_expression "(double)(**(code **)(puVar36 + 0x304034))(uVar45)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar36 + 0x304034))(uVar45)" (parenthesized_expression "(**(code **)(puVar36 + 0x304034))" ( (pointer_expression "**(code **)(puVar36 + 0x304034)" * (pointer_expression "*(code **)(puVar36 + 0x304034)" * (cast_expression "(code **)(puVar36 + 0x304034)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304034)" ( (binary_expression "puVar36 + 0x304034" identifier + number_literal) ))))) )) (argument_list "(uVar45)" ( identifier ))))) ;) (expression_statement "pdVar21[3] = dVar42 * dVar62 + dVar57;" (assignment_expression "pdVar21[3] = dVar42 * dVar62 + dVar57" (subscript_expression "pdVar21[3]" identifier [ number_literal ]) = (binary_expression "dVar42 * dVar62 + dVar57" (binary_expression "dVar42 * dVar62" identifier * identifier) + identifier)) ;) (expression_statement "uVar30 = uVar34;" (assignment_expression "uVar30 = uVar34" identifier = identifier) ;) (expression_statement "pdVar21 = pdVar21 + 2;" (assignment_expression "pdVar21 = pdVar21 + 2" identifier = (binary_expression "pdVar21 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar34 != uVar14)" ( (binary_expression "uVar34 != uVar14" identifier != identifier) )) ;) })) (expression_statement "*pdVar8 = dStack_278;" (assignment_expression "*pdVar8 = dStack_278" (pointer_expression "*pdVar8" * identifier) = identifier) ;) (expression_statement "pdVar8[1] = dStack_270;" (assignment_expression "pdVar8[1] = dStack_270" (subscript_expression "pdVar8[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "dStack_258 = dVar48;" (assignment_expression "dStack_258 = dVar48" identifier = identifier) ;) (expression_statement "dStack_260 = dVar49;" (assignment_expression "dStack_260 = dVar49" identifier = identifier) ;) (expression_statement "dVar56 = dStack_2a0;" (assignment_expression "dVar56 = dStack_2a0" identifier = identifier) ;) (expression_statement "dVar57 = dStack_2a8;" (assignment_expression "dVar57 = dStack_2a8" identifier = identifier) ;) (expression_statement "dVar59 = dStack_2b0;" (assignment_expression "dVar59 = dStack_2b0" identifier = identifier) ;) (expression_statement "dVar63 = dStack_2b8;" (assignment_expression "dVar63 = dStack_2b8" identifier = identifier) ;) (expression_statement "iVar33 = 1;" (assignment_expression "iVar33 = 1" identifier = number_literal) ;) (expression_statement "iVar35 = iVar9;" (assignment_expression "iVar35 = iVar9" identifier = identifier) ;) (expression_statement "dVar52 = dVar54;" (assignment_expression "dVar52 = dVar54" identifier = identifier) ;) }) (else_clause "else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }" else (compound_statement "{\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }" { (if_statement "if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }" if (parenthesized_expression "(iVar9 != 2)" ( (binary_expression "iVar9 != 2" identifier != number_literal) )) (compound_statement "{\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }" { (if_statement "if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }" if (parenthesized_expression "(iVar9 == 3)" ( (binary_expression "iVar9 == 3" identifier == number_literal) )) (compound_statement "{\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }" { (expression_statement "iVar9 = iVar35 * 2;" (assignment_expression "iVar9 = iVar35 * 2" identifier = (binary_expression "iVar35 * 2" identifier * number_literal)) ;) (expression_statement "iVar3 = iVar35 * 2;" (assignment_expression "iVar3 = iVar35 * 2" identifier = (binary_expression "iVar35 * 2" identifier * number_literal)) ;) (expression_statement "iVar35 = iVar35 + 2;" (assignment_expression "iVar35 = iVar35 + 2" identifier = (binary_expression "iVar35 + 2" identifier + number_literal)) ;) (expression_statement "pdVar7[iVar9] = dStack_250;" (assignment_expression "pdVar7[iVar9] = dStack_250" (subscript_expression "pdVar7[iVar9]" identifier [ identifier ]) = identifier) ;) (expression_statement "(pdVar7 + iVar9)[1] = dStack_248;" (assignment_expression "(pdVar7 + iVar9)[1] = dStack_248" (subscript_expression "(pdVar7 + iVar9)[1]" (parenthesized_expression "(pdVar7 + iVar9)" ( (binary_expression "pdVar7 + iVar9" identifier + identifier) )) [ number_literal ]) = identifier) ;) (expression_statement "pdVar21 = pdVar8 + iVar33 * 2;" (assignment_expression "pdVar21 = pdVar8 + iVar33 * 2" identifier = (binary_expression "pdVar8 + iVar33 * 2" identifier + (binary_expression "iVar33 * 2" identifier * number_literal))) ;) (expression_statement "pdVar7[iVar3 + 2] = dStack_288;" (assignment_expression "pdVar7[iVar3 + 2] = dStack_288" (subscript_expression "pdVar7[iVar3 + 2]" identifier [ (binary_expression "iVar3 + 2" identifier + number_literal) ]) = identifier) ;) (expression_statement "(pdVar7 + iVar3 + 2)[1] = dStack_280;" (assignment_expression "(pdVar7 + iVar3 + 2)[1] = dStack_280" (subscript_expression "(pdVar7 + iVar3 + 2)[1]" (parenthesized_expression "(pdVar7 + iVar3 + 2)" ( (binary_expression "pdVar7 + iVar3 + 2" (binary_expression "pdVar7 + iVar3" identifier + identifier) + number_literal) )) [ number_literal ]) = identifier) ;) (if_statement "if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }" if (parenthesized_expression "((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46)" ( (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46" (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62)" (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58)" (parenthesized_expression "(dVar47 - dVar58)" ( (binary_expression "dVar47 - dVar58" identifier - identifier) )) * (parenthesized_expression "(dVar47 - dVar58)" ( (binary_expression "dVar47 - dVar58" identifier - identifier) ))) + (binary_expression "(dVar44 - dVar62) * (dVar44 - dVar62)" (parenthesized_expression "(dVar44 - dVar62)" ( (binary_expression "dVar44 - dVar62" identifier - identifier) )) * (parenthesized_expression "(dVar44 - dVar62)" ( (binary_expression "dVar44 - dVar62" identifier - identifier) )))) <= identifier) )) (compound_statement "{\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }" { (expression_statement "*pdVar21 = dVar47;" (assignment_expression "*pdVar21 = dVar47" (pointer_expression "*pdVar21" * identifier) = identifier) ;) (expression_statement "pdVar21[1] = dVar44;" (assignment_expression "pdVar21[1] = dVar44" (subscript_expression "pdVar21[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "dStack_258 = dVar48;" (assignment_expression "dStack_258 = dVar48" identifier = identifier) ;) (expression_statement "dStack_260 = dVar49;" (assignment_expression "dStack_260 = dVar49" identifier = identifier) ;) (expression_statement "dVar56 = dStack_2a0;" (assignment_expression "dVar56 = dStack_2a0" identifier = identifier) ;) (expression_statement "dVar57 = dStack_2a8;" (assignment_expression "dVar57 = dStack_2a8" identifier = identifier) ;) (expression_statement "dVar59 = dStack_2b0;" (assignment_expression "dVar59 = dStack_2b0" identifier = identifier) ;) (expression_statement "dVar63 = dStack_2b8;" (assignment_expression "dVar63 = dStack_2b8" identifier = identifier) ;) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }" else (compound_statement "{\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }" { (expression_statement "*pdVar21 = dStack_240;" (assignment_expression "*pdVar21 = dStack_240" (pointer_expression "*pdVar21" * identifier) = identifier) ;) (expression_statement "pdVar21[1] = dStack_238;" (assignment_expression "pdVar21[1] = dStack_238" (subscript_expression "pdVar21[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pdVar8[iVar33 * 2 + 2] = dStack_278;" (assignment_expression "pdVar8[iVar33 * 2 + 2] = dStack_278" (subscript_expression "pdVar8[iVar33 * 2 + 2]" identifier [ (binary_expression "iVar33 * 2 + 2" (binary_expression "iVar33 * 2" identifier * number_literal) + number_literal) ]) = identifier) ;) (expression_statement "(pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;" (assignment_expression "(pdVar8 + iVar33 * 2 + 2)[1] = dStack_270" (subscript_expression "(pdVar8 + iVar33 * 2 + 2)[1]" (parenthesized_expression "(pdVar8 + iVar33 * 2 + 2)" ( (binary_expression "pdVar8 + iVar33 * 2 + 2" (binary_expression "pdVar8 + iVar33 * 2" identifier + (binary_expression "iVar33 * 2" identifier * number_literal)) + number_literal) )) [ number_literal ]) = identifier) ;) (expression_statement "dStack_258 = dVar48;" (assignment_expression "dStack_258 = dVar48" identifier = identifier) ;) (expression_statement "dStack_260 = dVar49;" (assignment_expression "dStack_260 = dVar49" identifier = identifier) ;) (expression_statement "dVar56 = dStack_2a0;" (assignment_expression "dVar56 = dStack_2a0" identifier = identifier) ;) (expression_statement "dVar57 = dStack_2a8;" (assignment_expression "dVar57 = dStack_2a8" identifier = identifier) ;) (expression_statement "dVar59 = dStack_2b0;" (assignment_expression "dVar59 = dStack_2b0" identifier = identifier) ;) (expression_statement "dVar63 = dStack_2b8;" (assignment_expression "dVar63 = dStack_2b8" identifier = identifier) ;) (expression_statement "iVar33 = iVar33 + 2;" (assignment_expression "iVar33 = iVar33 + 2" identifier = (binary_expression "iVar33 + 2" identifier + number_literal)) ;) }))) }) (else_clause "else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }" else (compound_statement "{\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }" { (expression_statement "dStack_258 = dVar48;" (assignment_expression "dStack_258 = dVar48" identifier = identifier) ;) (expression_statement "dStack_260 = dVar49;" (assignment_expression "dStack_260 = dVar49" identifier = identifier) ;) (expression_statement "dVar56 = dStack_2a0;" (assignment_expression "dVar56 = dStack_2a0" identifier = identifier) ;) (expression_statement "dVar57 = dStack_2a8;" (assignment_expression "dVar57 = dStack_2a8" identifier = identifier) ;) (expression_statement "dVar59 = dStack_2b0;" (assignment_expression "dVar59 = dStack_2b0" identifier = identifier) ;) (expression_statement "dVar63 = dStack_2b8;" (assignment_expression "dVar63 = dStack_2b8" identifier = identifier) ;) (if_statement "if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }" if (parenthesized_expression "(iVar9 == 1)" ( (binary_expression "iVar9 == 1" identifier == number_literal) )) (compound_statement "{\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }" { (expression_statement "pdVar21 = pdVar7 + iVar35 * 2;" (assignment_expression "pdVar21 = pdVar7 + iVar35 * 2" identifier = (binary_expression "pdVar7 + iVar35 * 2" identifier + (binary_expression "iVar35 * 2" identifier * number_literal))) ;) (expression_statement "pdVar31 = pdVar8 + iVar33 * 2;" (assignment_expression "pdVar31 = pdVar8 + iVar33 * 2" identifier = (binary_expression "pdVar8 + iVar33 * 2" identifier + (binary_expression "iVar33 * 2" identifier * number_literal))) ;) (if_statement "if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;" if (parenthesized_expression "((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46)" ( (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46" (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62)" (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58)" (parenthesized_expression "(dVar47 - dVar58)" ( (binary_expression "dVar47 - dVar58" identifier - identifier) )) * (parenthesized_expression "(dVar47 - dVar58)" ( (binary_expression "dVar47 - dVar58" identifier - identifier) ))) + (binary_expression "(dVar44 - dVar62) * (dVar44 - dVar62)" (parenthesized_expression "(dVar44 - dVar62)" ( (binary_expression "dVar44 - dVar62" identifier - identifier) )) * (parenthesized_expression "(dVar44 - dVar62)" ( (binary_expression "dVar44 - dVar62" identifier - identifier) )))) <= identifier) )) (goto_statement "goto LAB_000a58dc;" goto statement_identifier ;)) (labeled_statement "LAB_000a607c:\n                      *pdVar31 = dStack_240;" statement_identifier : (expression_statement "*pdVar31 = dStack_240;" (assignment_expression "*pdVar31 = dStack_240" (pointer_expression "*pdVar31" * identifier) = identifier) ;)) (expression_statement "pdVar31[1] = dStack_238;" (assignment_expression "pdVar31[1] = dStack_238" (subscript_expression "pdVar31[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pdVar8[iVar33 * 2 + 2] = dStack_278;" (assignment_expression "pdVar8[iVar33 * 2 + 2] = dStack_278" (subscript_expression "pdVar8[iVar33 * 2 + 2]" identifier [ (binary_expression "iVar33 * 2 + 2" (binary_expression "iVar33 * 2" identifier * number_literal) + number_literal) ]) = identifier) ;) (expression_statement "(pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;" (assignment_expression "(pdVar8 + iVar33 * 2 + 2)[1] = dStack_270" (subscript_expression "(pdVar8 + iVar33 * 2 + 2)[1]" (parenthesized_expression "(pdVar8 + iVar33 * 2 + 2)" ( (binary_expression "pdVar8 + iVar33 * 2 + 2" (binary_expression "pdVar8 + iVar33 * 2" identifier + (binary_expression "iVar33 * 2" identifier * number_literal)) + number_literal) )) [ number_literal ]) = identifier) ;) (expression_statement "*pdVar21 = dStack_250;" (assignment_expression "*pdVar21 = dStack_250" (pointer_expression "*pdVar21" * identifier) = identifier) ;) (expression_statement "pdVar21[1] = dStack_248;" (assignment_expression "pdVar21[1] = dStack_248" (subscript_expression "pdVar21[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pdVar7[iVar35 * 2 + 2] = dStack_288;" (assignment_expression "pdVar7[iVar35 * 2 + 2] = dStack_288" (subscript_expression "pdVar7[iVar35 * 2 + 2]" identifier [ (binary_expression "iVar35 * 2 + 2" (binary_expression "iVar35 * 2" identifier * number_literal) + number_literal) ]) = identifier) ;) (expression_statement "(pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;" (assignment_expression "(pdVar7 + iVar35 * 2 + 2)[1] = dStack_280" (subscript_expression "(pdVar7 + iVar35 * 2 + 2)[1]" (parenthesized_expression "(pdVar7 + iVar35 * 2 + 2)" ( (binary_expression "pdVar7 + iVar35 * 2 + 2" (binary_expression "pdVar7 + iVar35 * 2" identifier + (binary_expression "iVar35 * 2" identifier * number_literal)) + number_literal) )) [ number_literal ]) = identifier) ;) (expression_statement "dStack_258 = dVar48;" (assignment_expression "dStack_258 = dVar48" identifier = identifier) ;) (expression_statement "dStack_260 = dVar49;" (assignment_expression "dStack_260 = dVar49" identifier = identifier) ;) (expression_statement "dVar56 = dStack_2a0;" (assignment_expression "dVar56 = dStack_2a0" identifier = identifier) ;) (expression_statement "dVar57 = dStack_2a8;" (assignment_expression "dVar57 = dStack_2a8" identifier = identifier) ;) (expression_statement "dVar59 = dStack_2b0;" (assignment_expression "dVar59 = dStack_2b0" identifier = identifier) ;) (expression_statement "dVar63 = dStack_2b8;" (assignment_expression "dVar63 = dStack_2b8" identifier = identifier) ;) (expression_statement "iVar33 = iVar33 + 2;" (assignment_expression "iVar33 = iVar33 + 2" identifier = (binary_expression "iVar33 + 2" identifier + number_literal)) ;) (expression_statement "iVar35 = iVar35 + 2;" (assignment_expression "iVar35 = iVar35 + 2" identifier = (binary_expression "iVar35 + 2" identifier + number_literal)) ;) })) }))) (goto_statement "goto joined_r0x000a5a50;" goto statement_identifier ;) })) (expression_statement "iVar9 = iVar33 + 1;" (assignment_expression "iVar9 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "pdVar31 = pdVar8 + iVar33 * 2;" (assignment_expression "pdVar31 = pdVar8 + iVar33 * 2" identifier = (binary_expression "pdVar8 + iVar33 * 2" identifier + (binary_expression "iVar33 * 2" identifier * number_literal))) ;) (if_statement "if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }" if (parenthesized_expression "((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46)" ( (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46" (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62)" (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58)" (parenthesized_expression "(dVar47 - dVar58)" ( (binary_expression "dVar47 - dVar58" identifier - identifier) )) * (parenthesized_expression "(dVar47 - dVar58)" ( (binary_expression "dVar47 - dVar58" identifier - identifier) ))) + (binary_expression "(dVar44 - dVar62) * (dVar44 - dVar62)" (parenthesized_expression "(dVar44 - dVar62)" ( (binary_expression "dVar44 - dVar62" identifier - identifier) )) * (parenthesized_expression "(dVar44 - dVar62)" ( (binary_expression "dVar44 - dVar62" identifier - identifier) )))) <= identifier) )) (compound_statement "{\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }" { (expression_statement "*pdVar31 = dVar47;" (assignment_expression "*pdVar31 = dVar47" (pointer_expression "*pdVar31" * identifier) = identifier) ;) (expression_statement "pdVar31[1] = dVar44;" (assignment_expression "pdVar31[1] = dVar44" (subscript_expression "pdVar31[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }" else (compound_statement "{\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }" { (expression_statement "iVar9 = iVar33 + 2;" (assignment_expression "iVar9 = iVar33 + 2" identifier = (binary_expression "iVar33 + 2" identifier + number_literal)) ;) (expression_statement "*pdVar31 = dStack_240;" (assignment_expression "*pdVar31 = dStack_240" (pointer_expression "*pdVar31" * identifier) = identifier) ;) (expression_statement "pdVar31[1] = dStack_238;" (assignment_expression "pdVar31[1] = dStack_238" (subscript_expression "pdVar31[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pdVar8[iVar33 * 2 + 2] = dStack_278;" (assignment_expression "pdVar8[iVar33 * 2 + 2] = dStack_278" (subscript_expression "pdVar8[iVar33 * 2 + 2]" identifier [ (binary_expression "iVar33 * 2 + 2" (binary_expression "iVar33 * 2" identifier * number_literal) + number_literal) ]) = identifier) ;) (expression_statement "(pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;" (assignment_expression "(pdVar8 + iVar33 * 2 + 2)[1] = dStack_270" (subscript_expression "(pdVar8 + iVar33 * 2 + 2)[1]" (parenthesized_expression "(pdVar8 + iVar33 * 2 + 2)" ( (binary_expression "pdVar8 + iVar33 * 2 + 2" (binary_expression "pdVar8 + iVar33 * 2" identifier + (binary_expression "iVar33 * 2" identifier * number_literal)) + number_literal) )) [ number_literal ]) = identifier) ;) }))) (expression_statement "dVar57 = *pdVar21;" (assignment_expression "dVar57 = *pdVar21" identifier = (pointer_expression "*pdVar21" * identifier)) ;) (expression_statement "dVar58 = pdVar21[1];" (assignment_expression "dVar58 = pdVar21[1]" identifier = (subscript_expression "pdVar21[1]" identifier [ number_literal ])) ;) (expression_statement "dVar52 = dVar57;" (assignment_expression "dVar52 = dVar57" identifier = identifier) ;) (expression_statement "dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);" (assignment_expression "dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57)" identifier = (cast_expression "(double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042f8))" ( (pointer_expression "**(code **)(puVar36 + 0x3042f8)" * (pointer_expression "*(code **)(puVar36 + 0x3042f8)" * (cast_expression "(code **)(puVar36 + 0x3042f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042f8)" ( (binary_expression "puVar36 + 0x3042f8" identifier + number_literal) ))))) )) (argument_list "(dStack_248 - dVar58,dStack_250 - dVar57)" ( (binary_expression "dStack_248 - dVar58" identifier - identifier) , (binary_expression "dStack_250 - dVar57" identifier - identifier) ))))) ;) (expression_statement "dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);" (assignment_expression "dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52)" identifier = (cast_expression "(double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042f8))" ( (pointer_expression "**(code **)(puVar36 + 0x3042f8)" * (pointer_expression "*(code **)(puVar36 + 0x3042f8)" * (cast_expression "(code **)(puVar36 + 0x3042f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042f8)" ( (binary_expression "puVar36 + 0x3042f8" identifier + number_literal) ))))) )) (argument_list "(dStack_280 - dVar58,dStack_288 - dVar52)" ( (binary_expression "dStack_280 - dVar58" identifier - identifier) , (binary_expression "dStack_288 - dVar52" identifier - identifier) ))))) ;) (if_statement "if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }" if (parenthesized_expression "(dVar56 < dVar52)" ( (binary_expression "dVar56 < dVar52" identifier < identifier) )) (compound_statement "{\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }" { (expression_statement "dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);" (assignment_expression "dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0)" identifier = (binary_expression "dVar56 + *(double *)(iVar19 + 0x34a0)" identifier + (pointer_expression "*(double *)(iVar19 + 0x34a0)" * (cast_expression "(double *)(iVar19 + 0x34a0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x34a0)" ( (binary_expression "iVar19 + 0x34a0" identifier + number_literal) )))))) ;) })) (expression_statement "dVar62 = dVar56 - dVar52;" (assignment_expression "dVar62 = dVar56 - dVar52" identifier = (binary_expression "dVar56 - dVar52" identifier - identifier)) ;) (expression_statement "dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;" (assignment_expression "dVar59 = *(double *)(iVar16 + 0x1438) / dVar42" identifier = (binary_expression "*(double *)(iVar16 + 0x1438) / dVar42" (pointer_expression "*(double *)(iVar16 + 0x1438)" * (cast_expression "(double *)(iVar16 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x1438)" ( (binary_expression "iVar16 + 0x1438" identifier + number_literal) )))) / identifier)) ;) (expression_statement "dVar63 = SQRT(dVar59);" (assignment_expression "dVar63 = SQRT(dVar59)" identifier = (call_expression "SQRT(dVar59)" identifier (argument_list "(dVar59)" ( identifier )))) ;) (if_statement "if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }" if (parenthesized_expression "(dVar59 < 0.0)" ( (binary_expression "dVar59 < 0.0" identifier < number_literal) )) (compound_statement "{\n                  (**(code **)(puVar36 + 0x304770))();\n                }" { (expression_statement "(**(code **)(puVar36 + 0x304770))();" (call_expression "(**(code **)(puVar36 + 0x304770))()" (parenthesized_expression "(**(code **)(puVar36 + 0x304770))" ( (pointer_expression "**(code **)(puVar36 + 0x304770)" * (pointer_expression "*(code **)(puVar36 + 0x304770)" * (cast_expression "(code **)(puVar36 + 0x304770)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304770)" ( (binary_expression "puVar36 + 0x304770" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));" (assignment_expression "dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63))" identifier = (cast_expression "(double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63))" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63))" (parenthesized_expression "(**(code **)(puVar36 + 0x303f10))" ( (pointer_expression "**(code **)(puVar36 + 0x303f10)" * (pointer_expression "*(code **)(puVar36 + 0x303f10)" * (cast_expression "(code **)(puVar36 + 0x303f10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x303f10)" ( (binary_expression "puVar36 + 0x303f10" identifier + number_literal) ))))) )) (argument_list "(dVar62 / (dVar63 + dVar63))" ( (binary_expression "dVar62 / (dVar63 + dVar63)" identifier / (parenthesized_expression "(dVar63 + dVar63)" ( (binary_expression "dVar63 + dVar63" identifier + identifier) ))) ))))) ;) (if_statement "if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }" if (parenthesized_expression "(dVar62 < dVar40)" ( (binary_expression "dVar62 < dVar40" identifier < identifier) )) (compound_statement "{\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }" { (expression_statement "uVar30 = (uint)dVar62;" (assignment_expression "uVar30 = (uint)dVar62" identifier = (cast_expression "(uint)dVar62" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar14 = uVar30 + 0x618;" (assignment_expression "uVar14 = uVar30 + 0x618" identifier = (binary_expression "uVar30 + 0x618" identifier + number_literal)) ;) (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042b0);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042b0)" identifier = (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) ;) (if_statement "if (uVar14 < 0x4000001) goto LAB_000a5ec0;" if (parenthesized_expression "(uVar14 < 0x4000001)" ( (binary_expression "uVar14 < 0x4000001" identifier < number_literal) )) (goto_statement "goto LAB_000a5ec0;" goto statement_identifier ;)) (labeled_statement "LAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);" statement_identifier : (expression_statement "pdVar7 = (double *)(*pcVar37)(pdVar7);" (assignment_expression "pdVar7 = (double *)(*pcVar37)(pdVar7)" identifier = (cast_expression "(double *)(*pcVar37)(pdVar7)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar37)(pdVar7)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(pdVar7)" ( identifier ))))) ;)) }) (else_clause "else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }" else (compound_statement "{\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }" { (expression_statement "uVar30 = (int)(dVar62 - dVar40) | 0x80000000;" (assignment_expression "uVar30 = (int)(dVar62 - dVar40) | 0x80000000" identifier = (binary_expression "(int)(dVar62 - dVar40) | 0x80000000" (cast_expression "(int)(dVar62 - dVar40)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar62 - dVar40)" ( (binary_expression "dVar62 - dVar40" identifier - identifier) ))) | number_literal)) ;) (expression_statement "uVar14 = uVar30 + 0x618;" (assignment_expression "uVar14 = uVar30 + 0x618" identifier = (binary_expression "uVar30 + 0x618" identifier + number_literal)) ;) (if_statement "if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }" if (parenthesized_expression "(0x4000000 < uVar14)" ( (binary_expression "0x4000000 < uVar14" number_literal < identifier) )) (compound_statement "{\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }" { (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042b0);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042b0)" identifier = (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000a66a4;" goto statement_identifier ;) })) (labeled_statement "LAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }" statement_identifier : (if_statement "if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }" if (parenthesized_expression "((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30))" ( (binary_expression "(int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)" (cast_expression "(int)uStack_22c" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)(iVar35 + 0x618 + uVar30)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar35 + 0x618 + uVar30)" ( (binary_expression "iVar35 + 0x618 + uVar30" (binary_expression "iVar35 + 0x618" identifier + number_literal) + identifier) )))) )) (compound_statement "{\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }" { (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042b0);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042b0)" identifier = (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) ;) (if_statement "if (~uStack_22c < uVar14) goto LAB_000a66a4;" if (parenthesized_expression "(~uStack_22c < uVar14)" ( (binary_expression "~uStack_22c < uVar14" (unary_expression "~uStack_22c" ~ identifier) < identifier) )) (goto_statement "goto LAB_000a66a4;" goto statement_identifier ;)) (expression_statement "iVar33 = uStack_22c + uVar30;" (assignment_expression "iVar33 = uStack_22c + uVar30" identifier = (binary_expression "uStack_22c + uVar30" identifier + identifier)) ;) (expression_statement "uStack_22c = iVar33 + 0x618;" (assignment_expression "uStack_22c = iVar33 + 0x618" identifier = (binary_expression "iVar33 + 0x618" identifier + number_literal)) ;) (expression_statement "pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;" (assignment_expression "pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)" identifier = (cast_expression "(double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)" (parenthesized_expression "(**(code **)(puVar36 + 0x304710))" ( (pointer_expression "**(code **)(puVar36 + 0x304710)" * (pointer_expression "*(code **)(puVar36 + 0x304710)" * (cast_expression "(code **)(puVar36 + 0x304710)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304710)" ( (binary_expression "puVar36 + 0x304710" identifier + number_literal) ))))) )) (argument_list "(pdVar7,iVar33 + 0xc30,0x10)" ( identifier , (binary_expression "iVar33 + 0xc30" identifier + number_literal) , number_literal ))))) ;) }))) }))) (if_statement "if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }" if (parenthesized_expression "(iVar9 + 0x618 < (int)uVar4)" ( (binary_expression "iVar9 + 0x618 < (int)uVar4" (binary_expression "iVar9 + 0x618" identifier + number_literal) < (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }" { (if_statement "if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }" if (parenthesized_expression "(pdVar7 == (double *)0x0)" ( (binary_expression "pdVar7 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }" { (labeled_statement "LAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);" statement_identifier : (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar8);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar8)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar36 + 0x3042b0)" * (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar8)" ( identifier ))) ;)) (labeled_statement "LAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);" statement_identifier : (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042b0);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042b0)" identifier = (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_000a6660;" goto statement_identifier ;) })) }) (else_clause "else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }" else (compound_statement "{\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }" { (if_statement "if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }" if (parenthesized_expression "(uVar4 < 0xfffff9e8)" ( (binary_expression "uVar4 < 0xfffff9e8" identifier < number_literal) )) (compound_statement "{\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }" { (expression_statement "pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);" (assignment_expression "pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10)" identifier = (cast_expression "(double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10)" (parenthesized_expression "(**(code **)(puVar36 + 0x304710))" ( (pointer_expression "**(code **)(puVar36 + 0x304710)" * (pointer_expression "*(code **)(puVar36 + 0x304710)" * (cast_expression "(code **)(puVar36 + 0x304710)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304710)" ( (binary_expression "puVar36 + 0x304710" identifier + number_literal) ))))) )) (argument_list "(pdVar8,uVar4 + 0xc30,0x10)" ( identifier , (binary_expression "uVar4 + 0xc30" identifier + number_literal) , number_literal ))))) ;) (expression_statement "uVar4 = uVar4 + 0x618;" (assignment_expression "uVar4 = uVar4 + 0x618" identifier = (binary_expression "uVar4 + 0x618" identifier + number_literal)) ;) }) (else_clause "else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }" else (compound_statement "{\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }" { (expression_statement "pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);" (assignment_expression "pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8)" identifier = (cast_expression "(double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar8)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar36 + 0x3042b0)" * (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar8)" ( identifier ))))) ;) }))) (if_statement "if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }" if (parenthesized_expression "(pdVar7 == (double *)0x0)" ( (binary_expression "pdVar7 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }" { (if_statement "if (pdVar8 != (double *)0x0) goto LAB_000a664c;" if (parenthesized_expression "(pdVar8 != (double *)0x0)" ( (binary_expression "pdVar8 != (double *)0x0" identifier != (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000a664c;" goto statement_identifier ;)) (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042b0);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042b0)" identifier = (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000a6660:\n                    (*pcVar37)(pdVar6);" statement_identifier : (expression_statement "(*pcVar37)(pdVar6);" (call_expression "(*pcVar37)(pdVar6)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(pdVar6)" ( identifier ))) ;)) (expression_statement "uVar26 = 0x1d98;" (assignment_expression "uVar26 = 0x1d98" identifier = number_literal) ;) (goto_statement "goto LAB_000a5724;" goto statement_identifier ;) })) (if_statement "if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }" if (parenthesized_expression "(pdVar8 == (double *)0x0)" ( (binary_expression "pdVar8 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }" { (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar7);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar7)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar36 + 0x3042b0)" * (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar7)" ( identifier ))) ;) (goto_statement "goto LAB_000a665c;" goto statement_identifier ;) })) }))) (expression_statement "pdVar21 = pdVar7 + iVar35 * 2;" (assignment_expression "pdVar21 = pdVar7 + iVar35 * 2" identifier = (binary_expression "pdVar7 + iVar35 * 2" identifier + (binary_expression "iVar35 * 2" identifier * number_literal))) ;) (expression_statement "*pdVar21 = dStack_250;" (assignment_expression "*pdVar21 = dStack_250" (pointer_expression "*pdVar21" * identifier) = identifier) ;) (expression_statement "pdVar21[1] = dStack_248;" (assignment_expression "pdVar21[1] = dStack_248" (subscript_expression "pdVar21[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }" if (parenthesized_expression "(1 < (int)uVar30)" ( (binary_expression "1 < (int)uVar30" number_literal < (cast_expression "(int)uVar30" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }" { (expression_statement "dVar52 = dVar52 - dVar56;" (assignment_expression "dVar52 = dVar52 - dVar56" identifier = (binary_expression "dVar52 - dVar56" identifier - identifier)) ;) (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" identifier = number_literal) ;) (do_statement "do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);" do (compound_statement "{\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  }" { (expression_statement "uVar34 = uVar14 + 1;" (assignment_expression "uVar34 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (expression_statement "dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;" (assignment_expression "dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56" identifier = (binary_expression "((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56" (binary_expression "((double)(int)uVar14 * dVar52) / (double)(int)uVar30" (parenthesized_expression "((double)(int)uVar14 * dVar52)" ( (binary_expression "(double)(int)uVar14 * dVar52" (cast_expression "(double)(int)uVar14" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier)) * identifier) )) / (cast_expression "(double)(int)uVar30" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)uVar30" ( (type_descriptor "int" primitive_type) ) identifier))) + identifier)) ;) (expression_statement "uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);" (assignment_expression "uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41)" identifier = (call_expression "(**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41)" (parenthesized_expression "(**(code **)(puVar36 + 0x304ca8))" ( (pointer_expression "**(code **)(puVar36 + 0x304ca8)" * (pointer_expression "*(code **)(puVar36 + 0x304ca8)" * (cast_expression "(code **)(puVar36 + 0x304ca8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304ca8)" ( (binary_expression "puVar36 + 0x304ca8" identifier + number_literal) ))))) )) (argument_list "(dVar59,uVar41)" ( identifier , identifier )))) ;) (expression_statement "dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);" (assignment_expression "dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60)" identifier = (cast_expression "(double)(**(code **)(puVar36 + 0x304608))(uVar60)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar36 + 0x304608))(uVar60)" (parenthesized_expression "(**(code **)(puVar36 + 0x304608))" ( (pointer_expression "**(code **)(puVar36 + 0x304608)" * (pointer_expression "*(code **)(puVar36 + 0x304608)" * (cast_expression "(code **)(puVar36 + 0x304608)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304608)" ( (binary_expression "puVar36 + 0x304608" identifier + number_literal) ))))) )) (argument_list "(uVar60)" ( identifier ))))) ;) (expression_statement "pcVar37 = *(code **)(puVar36 + 0x304ca8);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x304ca8)" identifier = (pointer_expression "*(code **)(puVar36 + 0x304ca8)" * (cast_expression "(code **)(puVar36 + 0x304ca8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304ca8)" ( (binary_expression "puVar36 + 0x304ca8" identifier + number_literal) ))))) ;) (expression_statement "pdVar21[2] = dVar42 * dVar62 + dVar57;" (assignment_expression "pdVar21[2] = dVar42 * dVar62 + dVar57" (subscript_expression "pdVar21[2]" identifier [ number_literal ]) = (binary_expression "dVar42 * dVar62 + dVar57" (binary_expression "dVar42 * dVar62" identifier * identifier) + identifier)) ;) (expression_statement "uVar60 = (*pcVar37)(dVar59,uVar41);" (assignment_expression "uVar60 = (*pcVar37)(dVar59,uVar41)" identifier = (call_expression "(*pcVar37)(dVar59,uVar41)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(dVar59,uVar41)" ( identifier , identifier )))) ;) (expression_statement "dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);" (assignment_expression "dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60)" identifier = (cast_expression "(double)(**(code **)(puVar36 + 0x304034))(uVar60)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar36 + 0x304034))(uVar60)" (parenthesized_expression "(**(code **)(puVar36 + 0x304034))" ( (pointer_expression "**(code **)(puVar36 + 0x304034)" * (pointer_expression "*(code **)(puVar36 + 0x304034)" * (cast_expression "(code **)(puVar36 + 0x304034)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304034)" ( (binary_expression "puVar36 + 0x304034" identifier + number_literal) ))))) )) (argument_list "(uVar60)" ( identifier ))))) ;) (expression_statement "pdVar21[3] = dVar42 * dVar62 + dVar58;" (assignment_expression "pdVar21[3] = dVar42 * dVar62 + dVar58" (subscript_expression "pdVar21[3]" identifier [ number_literal ]) = (binary_expression "dVar42 * dVar62 + dVar58" (binary_expression "dVar42 * dVar62" identifier * identifier) + identifier)) ;) (expression_statement "uVar14 = uVar34;" (assignment_expression "uVar14 = uVar34" identifier = identifier) ;) (expression_statement "pdVar21 = pdVar21 + 2;" (assignment_expression "pdVar21 = pdVar21 + 2" identifier = (binary_expression "pdVar21 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar34 != uVar30)" ( (binary_expression "uVar34 != uVar30" identifier != identifier) )) ;) })) (expression_statement "*pdVar7 = dStack_288;" (assignment_expression "*pdVar7 = dStack_288" (pointer_expression "*pdVar7" * identifier) = identifier) ;) (expression_statement "pdVar7[1] = dStack_280;" (assignment_expression "pdVar7[1] = dStack_280" (subscript_expression "pdVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "dStack_258 = dVar48;" (assignment_expression "dStack_258 = dVar48" identifier = identifier) ;) (expression_statement "dStack_260 = dVar49;" (assignment_expression "dStack_260 = dVar49" identifier = identifier) ;) (expression_statement "dVar56 = dStack_2a0;" (assignment_expression "dVar56 = dStack_2a0" identifier = identifier) ;) (expression_statement "dVar57 = dStack_2a8;" (assignment_expression "dVar57 = dStack_2a8" identifier = identifier) ;) (expression_statement "dVar59 = dStack_2b0;" (assignment_expression "dVar59 = dStack_2b0" identifier = identifier) ;) (expression_statement "dVar63 = dStack_2b8;" (assignment_expression "dVar63 = dStack_2b8" identifier = identifier) ;) (expression_statement "iVar33 = iVar9;" (assignment_expression "iVar33 = iVar9" identifier = identifier) ;) (expression_statement "iVar35 = 1;" (assignment_expression "iVar35 = 1" identifier = number_literal) ;) (expression_statement "dVar52 = dVar54;" (assignment_expression "dVar52 = dVar54" identifier = identifier) ;) }))) })) (labeled_statement "joined_r0x000a5a50:\n            dStack_250 = dVar63;" statement_identifier : (expression_statement "dStack_250 = dVar63;" (assignment_expression "dStack_250 = dVar63" identifier = identifier) ;)) (expression_statement "dStack_248 = dVar59;" (assignment_expression "dStack_248 = dVar59" identifier = identifier) ;) (expression_statement "dStack_240 = dVar57;" (assignment_expression "dStack_240 = dVar57" identifier = identifier) ;) (expression_statement "dStack_238 = dVar56;" (assignment_expression "dStack_238 = dVar56" identifier = identifier) ;) (if_statement "if (iVar32 + 1 == iVar29) goto LAB_000a5a58;" if (parenthesized_expression "(iVar32 + 1 == iVar29)" ( (binary_expression "iVar32 + 1 == iVar29" (binary_expression "iVar32 + 1" identifier + number_literal) == identifier) )) (goto_statement "goto LAB_000a5a58;" goto statement_identifier ;)) (expression_statement "pdVar11 = pdVar11 + 5;" (assignment_expression "pdVar11 = pdVar11 + 5" identifier = (binary_expression "pdVar11 + 5" identifier + number_literal)) ;) (expression_statement "iVar32 = iVar32 + 1;" (assignment_expression "iVar32 = iVar32 + 1" identifier = (binary_expression "iVar32 + 1" identifier + number_literal)) ;) (expression_statement "dVar58 = pdVar6[iVar38 * 5];" (assignment_expression "dVar58 = pdVar6[iVar38 * 5]" identifier = (subscript_expression "pdVar6[iVar38 * 5]" identifier [ (binary_expression "iVar38 * 5" identifier * number_literal) ])) ;) (expression_statement "dVar62 = (pdVar6 + iVar38 * 5)[1];" (assignment_expression "dVar62 = (pdVar6 + iVar38 * 5)[1]" identifier = (subscript_expression "(pdVar6 + iVar38 * 5)[1]" (parenthesized_expression "(pdVar6 + iVar38 * 5)" ( (binary_expression "pdVar6 + iVar38 * 5" identifier + (binary_expression "iVar38 * 5" identifier * number_literal)) )) [ number_literal ])) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "iVar38 = 4;" (assignment_expression "iVar38 = 4" identifier = number_literal) ;) (expression_statement "iVar32 = 0x10;" (assignment_expression "iVar32 = 0x10" identifier = number_literal) ;) (expression_statement "iVar35 = 0x10;" (assignment_expression "iVar35 = 0x10" identifier = number_literal) ;) (expression_statement "iVar29 = 2;" (assignment_expression "iVar29 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_000a5a70;" goto statement_identifier ;) })) (expression_statement "bVar1 = iVar29 < 2;" (assignment_expression "bVar1 = iVar29 < 2" identifier = (binary_expression "iVar29 < 2" identifier < number_literal)) ;) (expression_statement "iStack_188 = 0;" (assignment_expression "iStack_188 = 0" identifier = number_literal) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "*(undefined4 *)((int)pdVar7 + 0x14) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar7 + 0x14) = 0" (pointer_expression "*(undefined4 *)((int)pdVar7 + 0x14)" * (cast_expression "(undefined4 *)((int)pdVar7 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar7 + 0x14)" ( (binary_expression "(int)pdVar7 + 0x14" (cast_expression "(int)pdVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (if_statement "if (!bVar1) goto LAB_000a4fe8;" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (goto_statement "goto LAB_000a4fe8;" goto statement_identifier ;)) (labeled_statement "LAB_000a6124:\n      if (iVar29 != 1) {\n        iVar38 = 1;\n        dStack_258 = 0.0;\n        dStack_260 = 0.0;\n        goto LAB_000a5110;\n      }" statement_identifier : (if_statement "if (iVar29 != 1) {\n        iVar38 = 1;\n        dStack_258 = 0.0;\n        dStack_260 = 0.0;\n        goto LAB_000a5110;\n      }" if (parenthesized_expression "(iVar29 != 1)" ( (binary_expression "iVar29 != 1" identifier != number_literal) )) (compound_statement "{\n        iVar38 = 1;\n        dStack_258 = 0.0;\n        dStack_260 = 0.0;\n        goto LAB_000a5110;\n      }" { (expression_statement "iVar38 = 1;" (assignment_expression "iVar38 = 1" identifier = number_literal) ;) (expression_statement "dStack_258 = 0.0;" (assignment_expression "dStack_258 = 0.0" identifier = number_literal) ;) (expression_statement "dStack_260 = 0.0;" (assignment_expression "dStack_260 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_000a5110;" goto statement_identifier ;) }))) (expression_statement "iVar38 = 1;" (assignment_expression "iVar38 = 1" identifier = number_literal) ;) (expression_statement "dStack_258 = 0.0;" (assignment_expression "dStack_258 = 0.0" identifier = number_literal) ;) (expression_statement "iVar16 = *(int *)(param_2 + 0x244);" (assignment_expression "iVar16 = *(int *)(param_2 + 0x244)" identifier = (pointer_expression "*(int *)(param_2 + 0x244)" * (cast_expression "(int *)(param_2 + 0x244)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x244)" ( (binary_expression "param_2 + 0x244" identifier + number_literal) ))))) ;) (expression_statement "dStack_260 = 0.0;" (assignment_expression "dStack_260 = 0.0" identifier = number_literal) ;) (labeled_statement "joined_r0x000a50f8:\n      if (iVar16 == 2) {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n        if (!bVar2) {\n          iVar38 = iVar38 + -1;\n          goto LAB_000a5110;\n        }\n      }\n      else {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n      }" statement_identifier : (if_statement "if (iVar16 == 2) {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n        if (!bVar2) {\n          iVar38 = iVar38 + -1;\n          goto LAB_000a5110;\n        }\n      }\n      else {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n      }" if (parenthesized_expression "(iVar16 == 2)" ( (binary_expression "iVar16 == 2" identifier == number_literal) )) (compound_statement "{\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n        if (!bVar2) {\n          iVar38 = iVar38 + -1;\n          goto LAB_000a5110;\n        }\n      }" { (expression_statement "pcVar37 = *(code **)(puVar36 + 0x304644);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x304644)" identifier = (pointer_expression "*(code **)(puVar36 + 0x304644)" * (cast_expression "(code **)(puVar36 + 0x304644)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304644)" ( (binary_expression "puVar36 + 0x304644" identifier + number_literal) ))))) ;) (if_statement "if (!bVar2) {\n          iVar38 = iVar38 + -1;\n          goto LAB_000a5110;\n        }" if (parenthesized_expression "(!bVar2)" ( (unary_expression "!bVar2" ! identifier) )) (compound_statement "{\n          iVar38 = iVar38 + -1;\n          goto LAB_000a5110;\n        }" { (expression_statement "iVar38 = iVar38 + -1;" (assignment_expression "iVar38 = iVar38 + -1" identifier = (binary_expression "iVar38 + -1" identifier + number_literal)) ;) (goto_statement "goto LAB_000a5110;" goto statement_identifier ;) })) }) (else_clause "else {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n      }" else (compound_statement "{\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n      }" { (expression_statement "pcVar37 = *(code **)(puVar36 + 0x304644);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x304644)" identifier = (pointer_expression "*(code **)(puVar36 + 0x304644)" * (cast_expression "(code **)(puVar36 + 0x304644)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304644)" ( (binary_expression "puVar36 + 0x304644" identifier + number_literal) ))))) ;) })))) (expression_statement "puVar13 = (undefined4 *)(*pcVar37)(0x28);" (assignment_expression "puVar13 = (undefined4 *)(*pcVar37)(0x28)" identifier = (cast_expression "(undefined4 *)(*pcVar37)(0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar37)(0x28)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(0x28)" ( number_literal ))))) ;) (expression_statement "pdVar7 = pdVar6;" (assignment_expression "pdVar7 = pdVar6" identifier = identifier) ;) (expression_statement "puVar12 = puVar13;" (assignment_expression "puVar12 = puVar13" identifier = identifier) ;) (do_statement "do {\n        puVar22 = puVar12;\n        pdVar8 = pdVar7;\n        pdVar7 = pdVar8 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar8 + 4);\n        uVar27 = *(undefined4 *)(pdVar8 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar8 + 0xc);\n        *puVar22 = *(undefined4 *)pdVar8;\n        puVar22[1] = uVar28;\n        puVar22[2] = uVar27;\n        puVar22[3] = uVar26;\n        puVar12 = puVar22 + 4;\n      } while (pdVar7 != pdVar6 + 4);" do (compound_statement "{\n        puVar22 = puVar12;\n        pdVar8 = pdVar7;\n        pdVar7 = pdVar8 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar8 + 4);\n        uVar27 = *(undefined4 *)(pdVar8 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar8 + 0xc);\n        *puVar22 = *(undefined4 *)pdVar8;\n        puVar22[1] = uVar28;\n        puVar22[2] = uVar27;\n        puVar22[3] = uVar26;\n        puVar12 = puVar22 + 4;\n      }" { (expression_statement "puVar22 = puVar12;" (assignment_expression "puVar22 = puVar12" identifier = identifier) ;) (expression_statement "pdVar8 = pdVar7;" (assignment_expression "pdVar8 = pdVar7" identifier = identifier) ;) (expression_statement "pdVar7 = pdVar8 + 2;" (assignment_expression "pdVar7 = pdVar8 + 2" identifier = (binary_expression "pdVar8 + 2" identifier + number_literal)) ;) (expression_statement "uVar28 = *(undefined4 *)((int)pdVar8 + 4);" (assignment_expression "uVar28 = *(undefined4 *)((int)pdVar8 + 4)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar8 + 4)" * (cast_expression "(undefined4 *)((int)pdVar8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar8 + 4)" ( (binary_expression "(int)pdVar8 + 4" (cast_expression "(int)pdVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar27 = *(undefined4 *)(pdVar8 + 1);" (assignment_expression "uVar27 = *(undefined4 *)(pdVar8 + 1)" identifier = (pointer_expression "*(undefined4 *)(pdVar8 + 1)" * (cast_expression "(undefined4 *)(pdVar8 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar8 + 1)" ( (binary_expression "pdVar8 + 1" identifier + number_literal) ))))) ;) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar8 + 0xc);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar8 + 0xc)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar8 + 0xc)" * (cast_expression "(undefined4 *)((int)pdVar8 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar8 + 0xc)" ( (binary_expression "(int)pdVar8 + 0xc" (cast_expression "(int)pdVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*puVar22 = *(undefined4 *)pdVar8;" (assignment_expression "*puVar22 = *(undefined4 *)pdVar8" (pointer_expression "*puVar22" * identifier) = (pointer_expression "*(undefined4 *)pdVar8" * (cast_expression "(undefined4 *)pdVar8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar22[1] = uVar28;" (assignment_expression "puVar22[1] = uVar28" (subscript_expression "puVar22[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22[2] = uVar27;" (assignment_expression "puVar22[2] = uVar27" (subscript_expression "puVar22[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22[3] = uVar26;" (assignment_expression "puVar22[3] = uVar26" (subscript_expression "puVar22[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12 = puVar22 + 4;" (assignment_expression "puVar12 = puVar22 + 4" identifier = (binary_expression "puVar22 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pdVar7 != pdVar6 + 4)" ( (binary_expression "pdVar7 != pdVar6 + 4" identifier != (binary_expression "pdVar6 + 4" identifier + number_literal)) )) ;) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar8 + 0x14);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar8 + 0x14)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar8 + 0x14)" * (cast_expression "(undefined4 *)((int)pdVar8 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar8 + 0x14)" ( (binary_expression "(int)pdVar8 + 0x14" (cast_expression "(int)pdVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042b0);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042b0)" identifier = (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) ;) (expression_statement "puVar22[4] = *(undefined4 *)pdVar7;" (assignment_expression "puVar22[4] = *(undefined4 *)pdVar7" (subscript_expression "puVar22[4]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)pdVar7" * (cast_expression "(undefined4 *)pdVar7" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar22[5] = uVar26;" (assignment_expression "puVar22[5] = uVar26" (subscript_expression "puVar22[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[4] = 0;" (assignment_expression "puVar13[4] = 0" (subscript_expression "puVar13[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(*pcVar37)(pdVar6);" (call_expression "(*pcVar37)(pdVar6)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(pdVar6)" ( identifier ))) ;) (goto_statement "goto LAB_000a61cc;" goto statement_identifier ;) })) (expression_statement "uVar26 = 0x1c57;" (assignment_expression "uVar26 = 0x1c57" identifier = number_literal) ;) (labeled_statement "LAB_000a5724:\n    (**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               uVar26,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);" statement_identifier : (expression_statement "(**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               uVar26,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);" (call_expression "(**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               uVar26,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688)" (parenthesized_expression "(**(code **)(puVar36 + 0x304210))" ( (pointer_expression "**(code **)(puVar36 + 0x304210)" * (pointer_expression "*(code **)(puVar36 + 0x304210)" * (cast_expression "(code **)(puVar36 + 0x304210)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304210)" ( (binary_expression "puVar36 + 0x304210" identifier + number_literal) ))))) )) (argument_list "(param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               uVar26,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688)" ( identifier , (binary_expression "*(int *)(puVar36 + 0x303bd8) + 0x38b0" (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar36 + 0x303bd8) + 0x45c8" (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) )))) + number_literal) , identifier , number_literal , (binary_expression "*(int *)(puVar36 + 0x303bd0) + 0x16f8" (pointer_expression "*(int *)(puVar36 + 0x303bd0)" * (cast_expression "(int *)(puVar36 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd0)" ( (binary_expression "puVar36 + 0x303bd0" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar36 + 0x303bd0) + 0x3e28" (pointer_expression "*(int *)(puVar36 + 0x303bd0)" * (cast_expression "(int *)(puVar36 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd0)" ( (binary_expression "puVar36 + 0x303bd0" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar36 + 0x303bd4) + -0x3688" (pointer_expression "*(int *)(puVar36 + 0x303bd4)" * (cast_expression "(int *)(puVar36 + 0x303bd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd4)" ( (binary_expression "puVar36 + 0x303bd4" identifier + number_literal) )))) + number_literal) ))) ;)) (expression_statement "uStack_1d0 = 0;" (assignment_expression "uStack_1d0 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000a5774;" goto statement_identifier ;) })) (expression_statement "uStack_1d0 = 1;" (assignment_expression "uStack_1d0 = 1" identifier = number_literal) ;) (labeled_statement "LAB_000a5774:\n  pcVar37 = *(code **)(puVar36 + 0x3042d8);" statement_identifier : (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042d8);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042d8)" identifier = (pointer_expression "*(code **)(puVar36 + 0x3042d8)" * (cast_expression "(code **)(puVar36 + 0x3042d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042d8)" ( (binary_expression "puVar36 + 0x3042d8" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_000a5778:\n  (*pcVar37)(iVar5);" statement_identifier : (expression_statement "(*pcVar37)(iVar5);" (call_expression "(*pcVar37)(iVar5)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(iVar5)" ( identifier ))) ;)) (if_statement "if (*(int *)(iVar17 + 0x3350) != 0) {\n    (**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x16b4,*(int *)(puVar36 + 0x303bd8) + 0x3df8);\n  }" if (parenthesized_expression "(*(int *)(iVar17 + 0x3350) != 0)" ( (binary_expression "*(int *)(iVar17 + 0x3350) != 0" (pointer_expression "*(int *)(iVar17 + 0x3350)" * (cast_expression "(int *)(iVar17 + 0x3350)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x3350)" ( (binary_expression "iVar17 + 0x3350" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    (**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x16b4,*(int *)(puVar36 + 0x303bd8) + 0x3df8);\n  }" { (expression_statement "(**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x16b4,*(int *)(puVar36 + 0x303bd8) + 0x3df8);" (call_expression "(**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x16b4,*(int *)(puVar36 + 0x303bd8) + 0x3df8)" (parenthesized_expression "(**(code **)(puVar36 + 0x3044d0))" ( (pointer_expression "**(code **)(puVar36 + 0x3044d0)" * (pointer_expression "*(code **)(puVar36 + 0x3044d0)" * (cast_expression "(code **)(puVar36 + 0x3044d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3044d0)" ( (binary_expression "puVar36 + 0x3044d0" identifier + number_literal) ))))) )) (argument_list "(0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x16b4,*(int *)(puVar36 + 0x303bd8) + 0x3df8)" ( number_literal , (binary_expression "*(int *)(puVar36 + 0x303bd8) + 0x38b0" (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar36 + 0x303bd8) + 0x45dc" (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar36 + 0x303bd8) + 0x3df8" (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) )))) + number_literal) ))) ;) })) (return_statement "return uStack_1d0;" return identifier ;) (labeled_statement "LAB_000a5a58:\n  iVar29 = iVar35 + 1;" statement_identifier : (expression_statement "iVar29 = iVar35 + 1;" (assignment_expression "iVar29 = iVar35 + 1" identifier = (binary_expression "iVar35 + 1" identifier + number_literal)) ;)) (expression_statement "iVar35 = iVar35 << 4;" (assignment_expression "iVar35 = iVar35 << 4" identifier = (binary_expression "iVar35 << 4" identifier << number_literal)) ;) (expression_statement "iVar32 = iVar33 << 4;" (assignment_expression "iVar32 = iVar33 << 4" identifier = (binary_expression "iVar33 << 4" identifier << number_literal)) ;) (expression_statement "iVar38 = iVar33 + 1 + iVar29;" (assignment_expression "iVar38 = iVar33 + 1 + iVar29" identifier = (binary_expression "iVar33 + 1 + iVar29" (binary_expression "iVar33 + 1" identifier + number_literal) + identifier)) ;) (labeled_statement "LAB_000a5a70:\n  pcVar37 = *(code **)(puVar36 + 0x3047fc);" statement_identifier : (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3047fc);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3047fc)" identifier = (pointer_expression "*(code **)(puVar36 + 0x3047fc)" * (cast_expression "(code **)(puVar36 + 0x3047fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3047fc)" ( (binary_expression "puVar36 + 0x3047fc" identifier + number_literal) ))))) ;)) (expression_statement "iVar38 = iStack_188 * 2 + iVar38;" (assignment_expression "iVar38 = iStack_188 * 2 + iVar38" identifier = (binary_expression "iStack_188 * 2 + iVar38" (binary_expression "iStack_188 * 2" identifier * number_literal) + identifier)) ;) (expression_statement "*(double *)((int)pdVar7 + iVar35) = dStack_250;" (assignment_expression "*(double *)((int)pdVar7 + iVar35) = dStack_250" (pointer_expression "*(double *)((int)pdVar7 + iVar35)" * (cast_expression "(double *)((int)pdVar7 + iVar35)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar7 + iVar35)" ( (binary_expression "(int)pdVar7 + iVar35" (cast_expression "(int)pdVar7" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (expression_statement "((double *)((int)pdVar7 + iVar35))[1] = dStack_248;" (assignment_expression "((double *)((int)pdVar7 + iVar35))[1] = dStack_248" (subscript_expression "((double *)((int)pdVar7 + iVar35))[1]" (parenthesized_expression "((double *)((int)pdVar7 + iVar35))" ( (cast_expression "(double *)((int)pdVar7 + iVar35)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar7 + iVar35)" ( (binary_expression "(int)pdVar7 + iVar35" (cast_expression "(int)pdVar7" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))) )) [ number_literal ]) = identifier) ;) (expression_statement "*(double *)((int)pdVar8 + iVar32) = dStack_240;" (assignment_expression "*(double *)((int)pdVar8 + iVar32) = dStack_240" (pointer_expression "*(double *)((int)pdVar8 + iVar32)" * (cast_expression "(double *)((int)pdVar8 + iVar32)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar8 + iVar32)" ( (binary_expression "(int)pdVar8 + iVar32" (cast_expression "(int)pdVar8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (expression_statement "((double *)((int)pdVar8 + iVar32))[1] = dStack_238;" (assignment_expression "((double *)((int)pdVar8 + iVar32))[1] = dStack_238" (subscript_expression "((double *)((int)pdVar8 + iVar32))[1]" (parenthesized_expression "((double *)((int)pdVar8 + iVar32))" ( (cast_expression "(double *)((int)pdVar8 + iVar32)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar8 + iVar32)" ( (binary_expression "(int)pdVar8 + iVar32" (cast_expression "(int)pdVar8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))) )) [ number_literal ]) = identifier) ;) (expression_statement "puVar13 = (undefined4 *)(*pcVar37)(iVar38 + 2,0x28);" (assignment_expression "puVar13 = (undefined4 *)(*pcVar37)(iVar38 + 2,0x28)" identifier = (cast_expression "(undefined4 *)(*pcVar37)(iVar38 + 2,0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar37)(iVar38 + 2,0x28)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(iVar38 + 2,0x28)" ( (binary_expression "iVar38 + 2" identifier + number_literal) , number_literal ))))) ;) (if_statement "if (puVar13 == (undefined4 *)0x0) {\n    (**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               0x1dbc,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n    uStack_1d0 = 0;\n    goto LAB_000a5774;\n  }" if (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" ( (binary_expression "puVar13 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               0x1dbc,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n    uStack_1d0 = 0;\n    goto LAB_000a5774;\n  }" { (expression_statement "(**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               0x1dbc,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);" (call_expression "(**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               0x1dbc,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688)" (parenthesized_expression "(**(code **)(puVar36 + 0x304210))" ( (pointer_expression "**(code **)(puVar36 + 0x304210)" * (pointer_expression "*(code **)(puVar36 + 0x304210)" * (cast_expression "(code **)(puVar36 + 0x304210)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304210)" ( (binary_expression "puVar36 + 0x304210" identifier + number_literal) ))))) )) (argument_list "(param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               0x1dbc,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688)" ( identifier , (binary_expression "*(int *)(puVar36 + 0x303bd8) + 0x38b0" (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar36 + 0x303bd8) + 0x45c8" (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , (binary_expression "*(int *)(puVar36 + 0x303bd0) + 0x16f8" (pointer_expression "*(int *)(puVar36 + 0x303bd0)" * (cast_expression "(int *)(puVar36 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd0)" ( (binary_expression "puVar36 + 0x303bd0" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar36 + 0x303bd0) + 0x3e28" (pointer_expression "*(int *)(puVar36 + 0x303bd0)" * (cast_expression "(int *)(puVar36 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd0)" ( (binary_expression "puVar36 + 0x303bd0" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar36 + 0x303bd4) + -0x3688" (pointer_expression "*(int *)(puVar36 + 0x303bd4)" * (cast_expression "(int *)(puVar36 + 0x303bd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd4)" ( (binary_expression "puVar36 + 0x303bd4" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar7);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar7)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar36 + 0x3042b0)" * (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar7)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar8);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar8)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar36 + 0x3042b0)" * (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar8)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar6);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar6)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar36 + 0x3042b0)" * (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar6)" ( identifier ))) ;) (expression_statement "uStack_1d0 = 0;" (assignment_expression "uStack_1d0 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000a5774;" goto statement_identifier ;) })) (expression_statement "pdVar31 = pdVar6 + 4;" (assignment_expression "pdVar31 = pdVar6 + 4" identifier = (binary_expression "pdVar6 + 4" identifier + number_literal)) ;) (expression_statement "pdVar11 = pdVar6;" (assignment_expression "pdVar11 = pdVar6" identifier = identifier) ;) (expression_statement "puVar12 = puVar13;" (assignment_expression "puVar12 = puVar13" identifier = identifier) ;) (expression_statement "pdVar21 = pdVar7;" (assignment_expression "pdVar21 = pdVar7" identifier = identifier) ;) (expression_statement "puVar22 = puVar13;" (assignment_expression "puVar22 = puVar13" identifier = identifier) ;) (do_statement "do {\n    do {\n      puVar23 = puVar12;\n      pdVar10 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar10;\n      puVar12 = puVar23 + 4;\n    } while (pdVar10 != pdVar31);\n    pdVar10 = pdVar21 + 2;\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar23[4] = *(undefined4 *)pdVar31;\n    puVar23[5] = uVar26;\n    uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n    uVar27 = *(undefined4 *)(pdVar21 + 1);\n    uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n    *puVar22 = *(undefined4 *)pdVar21;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    pdVar11 = pdVar6;\n    puVar12 = puVar22 + 10;\n    pdVar21 = pdVar10;\n    puVar22 = puVar22 + 10;\n  } while (pdVar7 + iVar29 * 2 != pdVar10);" do (compound_statement "{\n    do {\n      puVar23 = puVar12;\n      pdVar10 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar10;\n      puVar12 = puVar23 + 4;\n    } while (pdVar10 != pdVar31);\n    pdVar10 = pdVar21 + 2;\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar23[4] = *(undefined4 *)pdVar31;\n    puVar23[5] = uVar26;\n    uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n    uVar27 = *(undefined4 *)(pdVar21 + 1);\n    uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n    *puVar22 = *(undefined4 *)pdVar21;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    pdVar11 = pdVar6;\n    puVar12 = puVar22 + 10;\n    pdVar21 = pdVar10;\n    puVar22 = puVar22 + 10;\n  }" { (do_statement "do {\n      puVar23 = puVar12;\n      pdVar10 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar10;\n      puVar12 = puVar23 + 4;\n    } while (pdVar10 != pdVar31);" do (compound_statement "{\n      puVar23 = puVar12;\n      pdVar10 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar10;\n      puVar12 = puVar23 + 4;\n    }" { (expression_statement "puVar23 = puVar12;" (assignment_expression "puVar23 = puVar12" identifier = identifier) ;) (expression_statement "pdVar10 = pdVar11 + 2;" (assignment_expression "pdVar10 = pdVar11 + 2" identifier = (binary_expression "pdVar11 + 2" identifier + number_literal)) ;) (expression_statement "uVar28 = *(undefined4 *)((int)pdVar11 + 4);" (assignment_expression "uVar28 = *(undefined4 *)((int)pdVar11 + 4)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar11 + 4)" * (cast_expression "(undefined4 *)((int)pdVar11 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar11 + 4)" ( (binary_expression "(int)pdVar11 + 4" (cast_expression "(int)pdVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar27 = *(undefined4 *)(pdVar11 + 1);" (assignment_expression "uVar27 = *(undefined4 *)(pdVar11 + 1)" identifier = (pointer_expression "*(undefined4 *)(pdVar11 + 1)" * (cast_expression "(undefined4 *)(pdVar11 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar11 + 1)" ( (binary_expression "pdVar11 + 1" identifier + number_literal) ))))) ;) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar11 + 0xc)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar11 + 0xc)" * (cast_expression "(undefined4 *)((int)pdVar11 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar11 + 0xc)" ( (binary_expression "(int)pdVar11 + 0xc" (cast_expression "(int)pdVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*puVar23 = *(undefined4 *)pdVar11;" (assignment_expression "*puVar23 = *(undefined4 *)pdVar11" (pointer_expression "*puVar23" * identifier) = (pointer_expression "*(undefined4 *)pdVar11" * (cast_expression "(undefined4 *)pdVar11" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar23[1] = uVar28;" (assignment_expression "puVar23[1] = uVar28" (subscript_expression "puVar23[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar23[2] = uVar27;" (assignment_expression "puVar23[2] = uVar27" (subscript_expression "puVar23[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar23[3] = uVar26;" (assignment_expression "puVar23[3] = uVar26" (subscript_expression "puVar23[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pdVar11 = pdVar10;" (assignment_expression "pdVar11 = pdVar10" identifier = identifier) ;) (expression_statement "puVar12 = puVar23 + 4;" (assignment_expression "puVar12 = puVar23 + 4" identifier = (binary_expression "puVar23 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pdVar10 != pdVar31)" ( (binary_expression "pdVar10 != pdVar31" identifier != identifier) )) ;) (expression_statement "pdVar10 = pdVar21 + 2;" (assignment_expression "pdVar10 = pdVar21 + 2" identifier = (binary_expression "pdVar21 + 2" identifier + number_literal)) ;) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar6 + 0x24)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar6 + 0x24)" * (cast_expression "(undefined4 *)((int)pdVar6 + 0x24)" ( (type_descriptor "undefined4 *" 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) ))))) ;) (expression_statement "puVar23[4] = *(undefined4 *)pdVar31;" (assignment_expression "puVar23[4] = *(undefined4 *)pdVar31" (subscript_expression "puVar23[4]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)pdVar31" * (cast_expression "(undefined4 *)pdVar31" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar23[5] = uVar26;" (assignment_expression "puVar23[5] = uVar26" (subscript_expression "puVar23[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar28 = *(undefined4 *)((int)pdVar21 + 4);" (assignment_expression "uVar28 = *(undefined4 *)((int)pdVar21 + 4)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar21 + 4)" * (cast_expression "(undefined4 *)((int)pdVar21 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar21 + 4)" ( (binary_expression "(int)pdVar21 + 4" (cast_expression "(int)pdVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar27 = *(undefined4 *)(pdVar21 + 1);" (assignment_expression "uVar27 = *(undefined4 *)(pdVar21 + 1)" identifier = (pointer_expression "*(undefined4 *)(pdVar21 + 1)" * (cast_expression "(undefined4 *)(pdVar21 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar21 + 1)" ( (binary_expression "pdVar21 + 1" identifier + number_literal) ))))) ;) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar21 + 0xc)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar21 + 0xc)" * (cast_expression "(undefined4 *)((int)pdVar21 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar21 + 0xc)" ( (binary_expression "(int)pdVar21 + 0xc" (cast_expression "(int)pdVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*puVar22 = *(undefined4 *)pdVar21;" (assignment_expression "*puVar22 = *(undefined4 *)pdVar21" (pointer_expression "*puVar22" * identifier) = (pointer_expression "*(undefined4 *)pdVar21" * (cast_expression "(undefined4 *)pdVar21" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar22[1] = uVar28;" (assignment_expression "puVar22[1] = uVar28" (subscript_expression "puVar22[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22[2] = uVar27;" (assignment_expression "puVar22[2] = uVar27" (subscript_expression "puVar22[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22[3] = uVar26;" (assignment_expression "puVar22[3] = uVar26" (subscript_expression "puVar22[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pdVar11 = pdVar6;" (assignment_expression "pdVar11 = pdVar6" identifier = identifier) ;) (expression_statement "puVar12 = puVar22 + 10;" (assignment_expression "puVar12 = puVar22 + 10" identifier = (binary_expression "puVar22 + 10" identifier + number_literal)) ;) (expression_statement "pdVar21 = pdVar10;" (assignment_expression "pdVar21 = pdVar10" identifier = identifier) ;) (expression_statement "puVar22 = puVar22 + 10;" (assignment_expression "puVar22 = puVar22 + 10" identifier = (binary_expression "puVar22 + 10" identifier + number_literal)) ;) }) while (parenthesized_expression "(pdVar7 + iVar29 * 2 != pdVar10)" ( (binary_expression "pdVar7 + iVar29 * 2 != pdVar10" (binary_expression "pdVar7 + iVar29 * 2" identifier + (binary_expression "iVar29 * 2" identifier * number_literal)) != identifier) )) ;) (expression_statement "puVar22 = puVar13 + iVar29 * 10;" (assignment_expression "puVar22 = puVar13 + iVar29 * 10" identifier = (binary_expression "puVar13 + iVar29 * 10" identifier + (binary_expression "iVar29 * 10" identifier * number_literal))) ;) (expression_statement "puVar12 = puVar22;" (assignment_expression "puVar12 = puVar22" identifier = identifier) ;) (if_statement "if (bVar2) {\n    do {\n      puVar23 = puVar12;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar12 = puVar23 + 4;\n    } while (pdVar21 != pdVar31);\n    iVar29 = iVar29 + 1;\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar23[4] = *(undefined4 *)(pdVar6 + 4);\n    puVar23[5] = uVar26;\n    uVar28 = puVar13[1];\n    uVar27 = puVar13[2];\n    uVar26 = puVar13[3];\n    puVar12 = puVar13 + iVar29 * 10;\n    *puVar22 = *puVar13;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n  }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n    do {\n      puVar23 = puVar12;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar12 = puVar23 + 4;\n    } while (pdVar21 != pdVar31);\n    iVar29 = iVar29 + 1;\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar23[4] = *(undefined4 *)(pdVar6 + 4);\n    puVar23[5] = uVar26;\n    uVar28 = puVar13[1];\n    uVar27 = puVar13[2];\n    uVar26 = puVar13[3];\n    puVar12 = puVar13 + iVar29 * 10;\n    *puVar22 = *puVar13;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n  }" { (do_statement "do {\n      puVar23 = puVar12;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar12 = puVar23 + 4;\n    } while (pdVar21 != pdVar31);" do (compound_statement "{\n      puVar23 = puVar12;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar12 = puVar23 + 4;\n    }" { (expression_statement "puVar23 = puVar12;" (assignment_expression "puVar23 = puVar12" identifier = identifier) ;) (expression_statement "pdVar21 = pdVar11 + 2;" (assignment_expression "pdVar21 = pdVar11 + 2" identifier = (binary_expression "pdVar11 + 2" identifier + number_literal)) ;) (expression_statement "uVar28 = *(undefined4 *)((int)pdVar11 + 4);" (assignment_expression "uVar28 = *(undefined4 *)((int)pdVar11 + 4)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar11 + 4)" * (cast_expression "(undefined4 *)((int)pdVar11 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar11 + 4)" ( (binary_expression "(int)pdVar11 + 4" (cast_expression "(int)pdVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar27 = *(undefined4 *)(pdVar11 + 1);" (assignment_expression "uVar27 = *(undefined4 *)(pdVar11 + 1)" identifier = (pointer_expression "*(undefined4 *)(pdVar11 + 1)" * (cast_expression "(undefined4 *)(pdVar11 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar11 + 1)" ( (binary_expression "pdVar11 + 1" identifier + number_literal) ))))) ;) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar11 + 0xc)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar11 + 0xc)" * (cast_expression "(undefined4 *)((int)pdVar11 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar11 + 0xc)" ( (binary_expression "(int)pdVar11 + 0xc" (cast_expression "(int)pdVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*puVar23 = *(undefined4 *)pdVar11;" (assignment_expression "*puVar23 = *(undefined4 *)pdVar11" (pointer_expression "*puVar23" * identifier) = (pointer_expression "*(undefined4 *)pdVar11" * (cast_expression "(undefined4 *)pdVar11" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar23[1] = uVar28;" (assignment_expression "puVar23[1] = uVar28" (subscript_expression "puVar23[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar23[2] = uVar27;" (assignment_expression "puVar23[2] = uVar27" (subscript_expression "puVar23[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar23[3] = uVar26;" (assignment_expression "puVar23[3] = uVar26" (subscript_expression "puVar23[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pdVar11 = pdVar21;" (assignment_expression "pdVar11 = pdVar21" identifier = identifier) ;) (expression_statement "puVar12 = puVar23 + 4;" (assignment_expression "puVar12 = puVar23 + 4" identifier = (binary_expression "puVar23 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pdVar21 != pdVar31)" ( (binary_expression "pdVar21 != pdVar31" identifier != identifier) )) ;) (expression_statement "iVar29 = iVar29 + 1;" (assignment_expression "iVar29 = iVar29 + 1" identifier = (binary_expression "iVar29 + 1" identifier + number_literal)) ;) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar6 + 0x24)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar6 + 0x24)" * (cast_expression "(undefined4 *)((int)pdVar6 + 0x24)" ( (type_descriptor "undefined4 *" 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) ))))) ;) (expression_statement "puVar23[4] = *(undefined4 *)(pdVar6 + 4);" (assignment_expression "puVar23[4] = *(undefined4 *)(pdVar6 + 4)" (subscript_expression "puVar23[4]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(pdVar6 + 4)" * (cast_expression "(undefined4 *)(pdVar6 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar6 + 4)" ( (binary_expression "pdVar6 + 4" identifier + number_literal) ))))) ;) (expression_statement "puVar23[5] = uVar26;" (assignment_expression "puVar23[5] = uVar26" (subscript_expression "puVar23[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar28 = puVar13[1];" (assignment_expression "uVar28 = puVar13[1]" identifier = (subscript_expression "puVar13[1]" identifier [ number_literal ])) ;) (expression_statement "uVar27 = puVar13[2];" (assignment_expression "uVar27 = puVar13[2]" identifier = (subscript_expression "puVar13[2]" identifier [ number_literal ])) ;) (expression_statement "uVar26 = puVar13[3];" (assignment_expression "uVar26 = puVar13[3]" identifier = (subscript_expression "puVar13[3]" identifier [ number_literal ])) ;) (expression_statement "puVar12 = puVar13 + iVar29 * 10;" (assignment_expression "puVar12 = puVar13 + iVar29 * 10" identifier = (binary_expression "puVar13 + iVar29 * 10" identifier + (binary_expression "iVar29 * 10" identifier * number_literal))) ;) (expression_statement "*puVar22 = *puVar13;" (assignment_expression "*puVar22 = *puVar13" (pointer_expression "*puVar22" * identifier) = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "puVar22[1] = uVar28;" (assignment_expression "puVar22[1] = uVar28" (subscript_expression "puVar22[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22[2] = uVar27;" (assignment_expression "puVar22[2] = uVar27" (subscript_expression "puVar22[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22[3] = uVar26;" (assignment_expression "puVar22[3] = uVar26" (subscript_expression "puVar22[3]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "iStack_188 = iVar38 - iStack_188;" (assignment_expression "iStack_188 = iVar38 - iStack_188" identifier = (binary_expression "iVar38 - iStack_188" identifier - identifier)) ;) (if_statement "if (iVar29 < iStack_188) {\n    pdVar11 = pdVar6;\n    puVar12 = puVar13 + iVar29 * 10;\n    pdVar21 = pdVar8 + ((iStack_188 + 0xfffffff) - iVar29) * 2;\n    puVar23 = puVar13 + iVar29 * 10;\n    do {\n      do {\n        puVar25 = puVar12;\n        pdVar10 = pdVar11 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n        uVar27 = *(undefined4 *)(pdVar11 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n        *puVar25 = *(undefined4 *)pdVar11;\n        puVar25[1] = uVar28;\n        puVar25[2] = uVar27;\n        puVar25[3] = uVar26;\n        pdVar11 = pdVar10;\n        puVar12 = puVar25 + 4;\n      } while (pdVar10 != pdVar31);\n      pdVar10 = pdVar21 + -2;\n      uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n      puVar25[4] = *(undefined4 *)pdVar31;\n      puVar25[5] = uVar26;\n      uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n      uVar27 = *(undefined4 *)(pdVar21 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar21;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar6;\n      puVar12 = puVar23 + 10;\n      pdVar21 = pdVar10;\n      puVar23 = puVar23 + 10;\n    } while (pdVar8 + -2 != pdVar10);\n    puVar12 = puVar13 + iStack_188 * 10;\n    iVar29 = iStack_188;\n  }" if (parenthesized_expression "(iVar29 < iStack_188)" ( (binary_expression "iVar29 < iStack_188" identifier < identifier) )) (compound_statement "{\n    pdVar11 = pdVar6;\n    puVar12 = puVar13 + iVar29 * 10;\n    pdVar21 = pdVar8 + ((iStack_188 + 0xfffffff) - iVar29) * 2;\n    puVar23 = puVar13 + iVar29 * 10;\n    do {\n      do {\n        puVar25 = puVar12;\n        pdVar10 = pdVar11 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n        uVar27 = *(undefined4 *)(pdVar11 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n        *puVar25 = *(undefined4 *)pdVar11;\n        puVar25[1] = uVar28;\n        puVar25[2] = uVar27;\n        puVar25[3] = uVar26;\n        pdVar11 = pdVar10;\n        puVar12 = puVar25 + 4;\n      } while (pdVar10 != pdVar31);\n      pdVar10 = pdVar21 + -2;\n      uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n      puVar25[4] = *(undefined4 *)pdVar31;\n      puVar25[5] = uVar26;\n      uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n      uVar27 = *(undefined4 *)(pdVar21 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar21;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar6;\n      puVar12 = puVar23 + 10;\n      pdVar21 = pdVar10;\n      puVar23 = puVar23 + 10;\n    } while (pdVar8 + -2 != pdVar10);\n    puVar12 = puVar13 + iStack_188 * 10;\n    iVar29 = iStack_188;\n  }" { (expression_statement "pdVar11 = pdVar6;" (assignment_expression "pdVar11 = pdVar6" identifier = identifier) ;) (expression_statement "puVar12 = puVar13 + iVar29 * 10;" (assignment_expression "puVar12 = puVar13 + iVar29 * 10" identifier = (binary_expression "puVar13 + iVar29 * 10" identifier + (binary_expression "iVar29 * 10" identifier * number_literal))) ;) (expression_statement "pdVar21 = pdVar8 + ((iStack_188 + 0xfffffff) - iVar29) * 2;" (assignment_expression "pdVar21 = pdVar8 + ((iStack_188 + 0xfffffff) - iVar29) * 2" identifier = (binary_expression "pdVar8 + ((iStack_188 + 0xfffffff) - iVar29) * 2" identifier + (binary_expression "((iStack_188 + 0xfffffff) - iVar29) * 2" (parenthesized_expression "((iStack_188 + 0xfffffff) - iVar29)" ( (binary_expression "(iStack_188 + 0xfffffff) - iVar29" (parenthesized_expression "(iStack_188 + 0xfffffff)" ( (binary_expression "iStack_188 + 0xfffffff" identifier + number_literal) )) - identifier) )) * number_literal))) ;) (expression_statement "puVar23 = puVar13 + iVar29 * 10;" (assignment_expression "puVar23 = puVar13 + iVar29 * 10" identifier = (binary_expression "puVar13 + iVar29 * 10" identifier + (binary_expression "iVar29 * 10" identifier * number_literal))) ;) (do_statement "do {\n      do {\n        puVar25 = puVar12;\n        pdVar10 = pdVar11 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n        uVar27 = *(undefined4 *)(pdVar11 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n        *puVar25 = *(undefined4 *)pdVar11;\n        puVar25[1] = uVar28;\n        puVar25[2] = uVar27;\n        puVar25[3] = uVar26;\n        pdVar11 = pdVar10;\n        puVar12 = puVar25 + 4;\n      } while (pdVar10 != pdVar31);\n      pdVar10 = pdVar21 + -2;\n      uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n      puVar25[4] = *(undefined4 *)pdVar31;\n      puVar25[5] = uVar26;\n      uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n      uVar27 = *(undefined4 *)(pdVar21 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar21;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar6;\n      puVar12 = puVar23 + 10;\n      pdVar21 = pdVar10;\n      puVar23 = puVar23 + 10;\n    } while (pdVar8 + -2 != pdVar10);" do (compound_statement "{\n      do {\n        puVar25 = puVar12;\n        pdVar10 = pdVar11 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n        uVar27 = *(undefined4 *)(pdVar11 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n        *puVar25 = *(undefined4 *)pdVar11;\n        puVar25[1] = uVar28;\n        puVar25[2] = uVar27;\n        puVar25[3] = uVar26;\n        pdVar11 = pdVar10;\n        puVar12 = puVar25 + 4;\n      } while (pdVar10 != pdVar31);\n      pdVar10 = pdVar21 + -2;\n      uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n      puVar25[4] = *(undefined4 *)pdVar31;\n      puVar25[5] = uVar26;\n      uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n      uVar27 = *(undefined4 *)(pdVar21 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar21;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar6;\n      puVar12 = puVar23 + 10;\n      pdVar21 = pdVar10;\n      puVar23 = puVar23 + 10;\n    }" { (do_statement "do {\n        puVar25 = puVar12;\n        pdVar10 = pdVar11 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n        uVar27 = *(undefined4 *)(pdVar11 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n        *puVar25 = *(undefined4 *)pdVar11;\n        puVar25[1] = uVar28;\n        puVar25[2] = uVar27;\n        puVar25[3] = uVar26;\n        pdVar11 = pdVar10;\n        puVar12 = puVar25 + 4;\n      } while (pdVar10 != pdVar31);" do (compound_statement "{\n        puVar25 = puVar12;\n        pdVar10 = pdVar11 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n        uVar27 = *(undefined4 *)(pdVar11 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n        *puVar25 = *(undefined4 *)pdVar11;\n        puVar25[1] = uVar28;\n        puVar25[2] = uVar27;\n        puVar25[3] = uVar26;\n        pdVar11 = pdVar10;\n        puVar12 = puVar25 + 4;\n      }" { (expression_statement "puVar25 = puVar12;" (assignment_expression "puVar25 = puVar12" identifier = identifier) ;) (expression_statement "pdVar10 = pdVar11 + 2;" (assignment_expression "pdVar10 = pdVar11 + 2" identifier = (binary_expression "pdVar11 + 2" identifier + number_literal)) ;) (expression_statement "uVar28 = *(undefined4 *)((int)pdVar11 + 4);" (assignment_expression "uVar28 = *(undefined4 *)((int)pdVar11 + 4)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar11 + 4)" * (cast_expression "(undefined4 *)((int)pdVar11 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar11 + 4)" ( (binary_expression "(int)pdVar11 + 4" (cast_expression "(int)pdVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar27 = *(undefined4 *)(pdVar11 + 1);" (assignment_expression "uVar27 = *(undefined4 *)(pdVar11 + 1)" identifier = (pointer_expression "*(undefined4 *)(pdVar11 + 1)" * (cast_expression "(undefined4 *)(pdVar11 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar11 + 1)" ( (binary_expression "pdVar11 + 1" identifier + number_literal) ))))) ;) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar11 + 0xc)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar11 + 0xc)" * (cast_expression "(undefined4 *)((int)pdVar11 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar11 + 0xc)" ( (binary_expression "(int)pdVar11 + 0xc" (cast_expression "(int)pdVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*puVar25 = *(undefined4 *)pdVar11;" (assignment_expression "*puVar25 = *(undefined4 *)pdVar11" (pointer_expression "*puVar25" * identifier) = (pointer_expression "*(undefined4 *)pdVar11" * (cast_expression "(undefined4 *)pdVar11" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar25[1] = uVar28;" (assignment_expression "puVar25[1] = uVar28" (subscript_expression "puVar25[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar25[2] = uVar27;" (assignment_expression "puVar25[2] = uVar27" (subscript_expression "puVar25[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar25[3] = uVar26;" (assignment_expression "puVar25[3] = uVar26" (subscript_expression "puVar25[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pdVar11 = pdVar10;" (assignment_expression "pdVar11 = pdVar10" identifier = identifier) ;) (expression_statement "puVar12 = puVar25 + 4;" (assignment_expression "puVar12 = puVar25 + 4" identifier = (binary_expression "puVar25 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pdVar10 != pdVar31)" ( (binary_expression "pdVar10 != pdVar31" identifier != identifier) )) ;) (expression_statement "pdVar10 = pdVar21 + -2;" (assignment_expression "pdVar10 = pdVar21 + -2" identifier = (binary_expression "pdVar21 + -2" identifier + number_literal)) ;) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar6 + 0x24)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar6 + 0x24)" * (cast_expression "(undefined4 *)((int)pdVar6 + 0x24)" ( (type_descriptor "undefined4 *" 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) ))))) ;) (expression_statement "puVar25[4] = *(undefined4 *)pdVar31;" (assignment_expression "puVar25[4] = *(undefined4 *)pdVar31" (subscript_expression "puVar25[4]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)pdVar31" * (cast_expression "(undefined4 *)pdVar31" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar25[5] = uVar26;" (assignment_expression "puVar25[5] = uVar26" (subscript_expression "puVar25[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar28 = *(undefined4 *)((int)pdVar21 + 4);" (assignment_expression "uVar28 = *(undefined4 *)((int)pdVar21 + 4)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar21 + 4)" * (cast_expression "(undefined4 *)((int)pdVar21 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar21 + 4)" ( (binary_expression "(int)pdVar21 + 4" (cast_expression "(int)pdVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar27 = *(undefined4 *)(pdVar21 + 1);" (assignment_expression "uVar27 = *(undefined4 *)(pdVar21 + 1)" identifier = (pointer_expression "*(undefined4 *)(pdVar21 + 1)" * (cast_expression "(undefined4 *)(pdVar21 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar21 + 1)" ( (binary_expression "pdVar21 + 1" identifier + number_literal) ))))) ;) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar21 + 0xc)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar21 + 0xc)" * (cast_expression "(undefined4 *)((int)pdVar21 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar21 + 0xc)" ( (binary_expression "(int)pdVar21 + 0xc" (cast_expression "(int)pdVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*puVar23 = *(undefined4 *)pdVar21;" (assignment_expression "*puVar23 = *(undefined4 *)pdVar21" (pointer_expression "*puVar23" * identifier) = (pointer_expression "*(undefined4 *)pdVar21" * (cast_expression "(undefined4 *)pdVar21" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar23[1] = uVar28;" (assignment_expression "puVar23[1] = uVar28" (subscript_expression "puVar23[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar23[2] = uVar27;" (assignment_expression "puVar23[2] = uVar27" (subscript_expression "puVar23[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar23[3] = uVar26;" (assignment_expression "puVar23[3] = uVar26" (subscript_expression "puVar23[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pdVar11 = pdVar6;" (assignment_expression "pdVar11 = pdVar6" identifier = identifier) ;) (expression_statement "puVar12 = puVar23 + 10;" (assignment_expression "puVar12 = puVar23 + 10" identifier = (binary_expression "puVar23 + 10" identifier + number_literal)) ;) (expression_statement "pdVar21 = pdVar10;" (assignment_expression "pdVar21 = pdVar10" identifier = identifier) ;) (expression_statement "puVar23 = puVar23 + 10;" (assignment_expression "puVar23 = puVar23 + 10" identifier = (binary_expression "puVar23 + 10" identifier + number_literal)) ;) }) while (parenthesized_expression "(pdVar8 + -2 != pdVar10)" ( (binary_expression "pdVar8 + -2 != pdVar10" (binary_expression "pdVar8 + -2" identifier + number_literal) != identifier) )) ;) (expression_statement "puVar12 = puVar13 + iStack_188 * 10;" (assignment_expression "puVar12 = puVar13 + iStack_188 * 10" identifier = (binary_expression "puVar13 + iStack_188 * 10" identifier + (binary_expression "iStack_188 * 10" identifier * number_literal))) ;) (expression_statement "iVar29 = iStack_188;" (assignment_expression "iVar29 = iStack_188" identifier = identifier) ;) })) (expression_statement "puVar24 = puVar13 + (iVar29 + 1) * 10;" (assignment_expression "puVar24 = puVar13 + (iVar29 + 1) * 10" identifier = (binary_expression "puVar13 + (iVar29 + 1) * 10" identifier + (binary_expression "(iVar29 + 1) * 10" (parenthesized_expression "(iVar29 + 1)" ( (binary_expression "iVar29 + 1" identifier + number_literal) )) * number_literal))) ;) (expression_statement "pdVar11 = pdVar6;" (assignment_expression "pdVar11 = pdVar6" identifier = identifier) ;) (expression_statement "puVar23 = puVar12;" (assignment_expression "puVar23 = puVar12" identifier = identifier) ;) (expression_statement "puVar25 = puVar24;" (assignment_expression "puVar25 = puVar24" identifier = identifier) ;) (if_statement "if (bVar2) {\n    do {\n      puVar25 = puVar23;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar25 = *(undefined4 *)pdVar11;\n      puVar25[1] = uVar28;\n      puVar25[2] = uVar27;\n      puVar25[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar23 = puVar25 + 4;\n    } while (pdVar21 != pdVar31);\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar25[4] = *(undefined4 *)(pdVar6 + 4);\n    puVar25[5] = uVar26;\n    uVar27 = puVar22[0xb];\n    uVar26 = puVar22[0xc];\n    uVar28 = puVar22[0xd];\n    *puVar12 = puVar22[10];\n    puVar12[1] = uVar27;\n    puVar12[2] = uVar26;\n    puVar12[3] = uVar28;\n    puVar25 = puVar13 + (iVar29 + 1) * 10 + 10;\n    pdVar11 = pdVar6;\n    puVar12 = puVar24;\n    puVar23 = puVar24;\n  }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n    do {\n      puVar25 = puVar23;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar25 = *(undefined4 *)pdVar11;\n      puVar25[1] = uVar28;\n      puVar25[2] = uVar27;\n      puVar25[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar23 = puVar25 + 4;\n    } while (pdVar21 != pdVar31);\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar25[4] = *(undefined4 *)(pdVar6 + 4);\n    puVar25[5] = uVar26;\n    uVar27 = puVar22[0xb];\n    uVar26 = puVar22[0xc];\n    uVar28 = puVar22[0xd];\n    *puVar12 = puVar22[10];\n    puVar12[1] = uVar27;\n    puVar12[2] = uVar26;\n    puVar12[3] = uVar28;\n    puVar25 = puVar13 + (iVar29 + 1) * 10 + 10;\n    pdVar11 = pdVar6;\n    puVar12 = puVar24;\n    puVar23 = puVar24;\n  }" { (do_statement "do {\n      puVar25 = puVar23;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar25 = *(undefined4 *)pdVar11;\n      puVar25[1] = uVar28;\n      puVar25[2] = uVar27;\n      puVar25[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar23 = puVar25 + 4;\n    } while (pdVar21 != pdVar31);" do (compound_statement "{\n      puVar25 = puVar23;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar25 = *(undefined4 *)pdVar11;\n      puVar25[1] = uVar28;\n      puVar25[2] = uVar27;\n      puVar25[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar23 = puVar25 + 4;\n    }" { (expression_statement "puVar25 = puVar23;" (assignment_expression "puVar25 = puVar23" identifier = identifier) ;) (expression_statement "pdVar21 = pdVar11 + 2;" (assignment_expression "pdVar21 = pdVar11 + 2" identifier = (binary_expression "pdVar11 + 2" identifier + number_literal)) ;) (expression_statement "uVar28 = *(undefined4 *)((int)pdVar11 + 4);" (assignment_expression "uVar28 = *(undefined4 *)((int)pdVar11 + 4)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar11 + 4)" * (cast_expression "(undefined4 *)((int)pdVar11 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar11 + 4)" ( (binary_expression "(int)pdVar11 + 4" (cast_expression "(int)pdVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar27 = *(undefined4 *)(pdVar11 + 1);" (assignment_expression "uVar27 = *(undefined4 *)(pdVar11 + 1)" identifier = (pointer_expression "*(undefined4 *)(pdVar11 + 1)" * (cast_expression "(undefined4 *)(pdVar11 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar11 + 1)" ( (binary_expression "pdVar11 + 1" identifier + number_literal) ))))) ;) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar11 + 0xc)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar11 + 0xc)" * (cast_expression "(undefined4 *)((int)pdVar11 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar11 + 0xc)" ( (binary_expression "(int)pdVar11 + 0xc" (cast_expression "(int)pdVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*puVar25 = *(undefined4 *)pdVar11;" (assignment_expression "*puVar25 = *(undefined4 *)pdVar11" (pointer_expression "*puVar25" * identifier) = (pointer_expression "*(undefined4 *)pdVar11" * (cast_expression "(undefined4 *)pdVar11" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar25[1] = uVar28;" (assignment_expression "puVar25[1] = uVar28" (subscript_expression "puVar25[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar25[2] = uVar27;" (assignment_expression "puVar25[2] = uVar27" (subscript_expression "puVar25[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar25[3] = uVar26;" (assignment_expression "puVar25[3] = uVar26" (subscript_expression "puVar25[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pdVar11 = pdVar21;" (assignment_expression "pdVar11 = pdVar21" identifier = identifier) ;) (expression_statement "puVar23 = puVar25 + 4;" (assignment_expression "puVar23 = puVar25 + 4" identifier = (binary_expression "puVar25 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pdVar21 != pdVar31)" ( (binary_expression "pdVar21 != pdVar31" identifier != identifier) )) ;) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar6 + 0x24)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar6 + 0x24)" * (cast_expression "(undefined4 *)((int)pdVar6 + 0x24)" ( (type_descriptor "undefined4 *" 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) ))))) ;) (expression_statement "puVar25[4] = *(undefined4 *)(pdVar6 + 4);" (assignment_expression "puVar25[4] = *(undefined4 *)(pdVar6 + 4)" (subscript_expression "puVar25[4]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(pdVar6 + 4)" * (cast_expression "(undefined4 *)(pdVar6 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar6 + 4)" ( (binary_expression "pdVar6 + 4" identifier + number_literal) ))))) ;) (expression_statement "puVar25[5] = uVar26;" (assignment_expression "puVar25[5] = uVar26" (subscript_expression "puVar25[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar27 = puVar22[0xb];" (assignment_expression "uVar27 = puVar22[0xb]" identifier = (subscript_expression "puVar22[0xb]" identifier [ number_literal ])) ;) (expression_statement "uVar26 = puVar22[0xc];" (assignment_expression "uVar26 = puVar22[0xc]" identifier = (subscript_expression "puVar22[0xc]" identifier [ number_literal ])) ;) (expression_statement "uVar28 = puVar22[0xd];" (assignment_expression "uVar28 = puVar22[0xd]" identifier = (subscript_expression "puVar22[0xd]" identifier [ number_literal ])) ;) (expression_statement "*puVar12 = puVar22[10];" (assignment_expression "*puVar12 = puVar22[10]" (pointer_expression "*puVar12" * identifier) = (subscript_expression "puVar22[10]" identifier [ number_literal ])) ;) (expression_statement "puVar12[1] = uVar27;" (assignment_expression "puVar12[1] = uVar27" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[2] = uVar26;" (assignment_expression "puVar12[2] = uVar26" (subscript_expression "puVar12[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[3] = uVar28;" (assignment_expression "puVar12[3] = uVar28" (subscript_expression "puVar12[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar25 = puVar13 + (iVar29 + 1) * 10 + 10;" (assignment_expression "puVar25 = puVar13 + (iVar29 + 1) * 10 + 10" identifier = (binary_expression "puVar13 + (iVar29 + 1) * 10 + 10" (binary_expression "puVar13 + (iVar29 + 1) * 10" identifier + (binary_expression "(iVar29 + 1) * 10" (parenthesized_expression "(iVar29 + 1)" ( (binary_expression "iVar29 + 1" identifier + number_literal) )) * number_literal)) + number_literal)) ;) (expression_statement "pdVar11 = pdVar6;" (assignment_expression "pdVar11 = pdVar6" identifier = identifier) ;) (expression_statement "puVar12 = puVar24;" (assignment_expression "puVar12 = puVar24" identifier = identifier) ;) (expression_statement "puVar23 = puVar24;" (assignment_expression "puVar23 = puVar24" identifier = identifier) ;) })) (do_statement "do {\n    puVar22 = puVar12;\n    pdVar21 = pdVar11;\n    pdVar11 = pdVar21 + 2;\n    uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n    uVar27 = *(undefined4 *)(pdVar21 + 1);\n    uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n    *puVar22 = *(undefined4 *)pdVar21;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    puVar12 = puVar22 + 4;\n  } while (pdVar11 != pdVar31);" do (compound_statement "{\n    puVar22 = puVar12;\n    pdVar21 = pdVar11;\n    pdVar11 = pdVar21 + 2;\n    uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n    uVar27 = *(undefined4 *)(pdVar21 + 1);\n    uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n    *puVar22 = *(undefined4 *)pdVar21;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    puVar12 = puVar22 + 4;\n  }" { (expression_statement "puVar22 = puVar12;" (assignment_expression "puVar22 = puVar12" identifier = identifier) ;) (expression_statement "pdVar21 = pdVar11;" (assignment_expression "pdVar21 = pdVar11" identifier = identifier) ;) (expression_statement "pdVar11 = pdVar21 + 2;" (assignment_expression "pdVar11 = pdVar21 + 2" identifier = (binary_expression "pdVar21 + 2" identifier + number_literal)) ;) (expression_statement "uVar28 = *(undefined4 *)((int)pdVar21 + 4);" (assignment_expression "uVar28 = *(undefined4 *)((int)pdVar21 + 4)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar21 + 4)" * (cast_expression "(undefined4 *)((int)pdVar21 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar21 + 4)" ( (binary_expression "(int)pdVar21 + 4" (cast_expression "(int)pdVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar27 = *(undefined4 *)(pdVar21 + 1);" (assignment_expression "uVar27 = *(undefined4 *)(pdVar21 + 1)" identifier = (pointer_expression "*(undefined4 *)(pdVar21 + 1)" * (cast_expression "(undefined4 *)(pdVar21 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar21 + 1)" ( (binary_expression "pdVar21 + 1" identifier + number_literal) ))))) ;) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar21 + 0xc)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar21 + 0xc)" * (cast_expression "(undefined4 *)((int)pdVar21 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar21 + 0xc)" ( (binary_expression "(int)pdVar21 + 0xc" (cast_expression "(int)pdVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*puVar22 = *(undefined4 *)pdVar21;" (assignment_expression "*puVar22 = *(undefined4 *)pdVar21" (pointer_expression "*puVar22" * identifier) = (pointer_expression "*(undefined4 *)pdVar21" * (cast_expression "(undefined4 *)pdVar21" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar22[1] = uVar28;" (assignment_expression "puVar22[1] = uVar28" (subscript_expression "puVar22[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22[2] = uVar27;" (assignment_expression "puVar22[2] = uVar27" (subscript_expression "puVar22[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22[3] = uVar26;" (assignment_expression "puVar22[3] = uVar26" (subscript_expression "puVar22[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12 = puVar22 + 4;" (assignment_expression "puVar12 = puVar22 + 4" identifier = (binary_expression "puVar22 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pdVar11 != pdVar31)" ( (binary_expression "pdVar11 != pdVar31" identifier != identifier) )) ;) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar21 + 0x14);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar21 + 0x14)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar21 + 0x14)" * (cast_expression "(undefined4 *)((int)pdVar21 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar21 + 0x14)" ( (binary_expression "(int)pdVar21 + 0x14" (cast_expression "(int)pdVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042b0);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042b0)" identifier = (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) ;) (expression_statement "puVar22[4] = *(undefined4 *)pdVar11;" (assignment_expression "puVar22[4] = *(undefined4 *)pdVar11" (subscript_expression "puVar22[4]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)pdVar11" * (cast_expression "(undefined4 *)pdVar11" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar22[5] = uVar26;" (assignment_expression "puVar22[5] = uVar26" (subscript_expression "puVar22[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar28 = puVar13[1];" (assignment_expression "uVar28 = puVar13[1]" identifier = (subscript_expression "puVar13[1]" identifier [ number_literal ])) ;) (expression_statement "uVar27 = puVar13[2];" (assignment_expression "uVar27 = puVar13[2]" identifier = (subscript_expression "puVar13[2]" identifier [ number_literal ])) ;) (expression_statement "uVar26 = puVar13[3];" (assignment_expression "uVar26 = puVar13[3]" identifier = (subscript_expression "puVar13[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar23 = *puVar13;" (assignment_expression "*puVar23 = *puVar13" (pointer_expression "*puVar23" * identifier) = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "puVar23[1] = uVar28;" (assignment_expression "puVar23[1] = uVar28" (subscript_expression "puVar23[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar23[2] = uVar27;" (assignment_expression "puVar23[2] = uVar27" (subscript_expression "puVar23[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar23[3] = uVar26;" (assignment_expression "puVar23[3] = uVar26" (subscript_expression "puVar23[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar25[5] = 0;" (assignment_expression "puVar25[5] = 0" (subscript_expression "puVar25[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar13[4] = iVar38 + 1;" (assignment_expression "puVar13[4] = iVar38 + 1" (subscript_expression "puVar13[4]" identifier [ number_literal ]) = (binary_expression "iVar38 + 1" identifier + number_literal)) ;) (expression_statement "(*pcVar37)(pdVar7);" (call_expression "(*pcVar37)(pdVar7)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(pdVar7)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar8);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar8)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar36 + 0x3042b0)" * (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar8)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar6);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar6)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar36 + 0x3042b0)" * (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar6)" ( identifier ))) ;) (labeled_statement "LAB_000a61cc:\n  uVar4 = FUN_000a2d58(iVar17,iVar5,puVar13,param_4);" statement_identifier : (expression_statement "uVar4 = FUN_000a2d58(iVar17,iVar5,puVar13,param_4);" (assignment_expression "uVar4 = FUN_000a2d58(iVar17,iVar5,puVar13,param_4)" identifier = (call_expression "FUN_000a2d58(iVar17,iVar5,puVar13,param_4)" identifier (argument_list "(iVar17,iVar5,puVar13,param_4)" ( identifier , identifier , identifier , identifier )))) ;)) (expression_statement "uStack_1d0 = uStack_1d0 & uVar4;" (assignment_expression "uStack_1d0 = uStack_1d0 & uVar4" identifier = (binary_expression "uStack_1d0 & uVar4" identifier & identifier)) ;) (expression_statement "(**(code **)(puVar36 + 0x3042b0))(puVar13);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(puVar13)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar36 + 0x3042b0)" * (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(puVar13)" ( identifier ))) ;) (if_statement "if (uStack_1d0 == 0) goto LAB_000a5774;" if (parenthesized_expression "(uStack_1d0 == 0)" ( (binary_expression "uStack_1d0 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000a5774;" goto statement_identifier ;)) (expression_statement "iVar32 = *(int *)(pdStack_e8 + 2);" (assignment_expression "iVar32 = *(int *)(pdStack_e8 + 2)" identifier = (pointer_expression "*(int *)(pdStack_e8 + 2)" * (cast_expression "(int *)(pdStack_e8 + 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdStack_e8 + 2)" ( (binary_expression "pdStack_e8 + 2" identifier + number_literal) ))))) ;) (expression_statement "iVar29 = iVar32 * 0x28;" (assignment_expression "iVar29 = iVar32 * 0x28" identifier = (binary_expression "iVar32 * 0x28" identifier * number_literal)) ;) (if_statement "if ((*(int *)(param_2 + 0x244) == 2) && (*(int *)(pdStack_e8 + 4) == 0)) {\n    uVar4 = FUN_000a4c0c(iVar17,param_2,pdStack_e8,param_4);\n    uVar14 = FUN_000a4c0c(iVar17,param_2,pdStack_e8 + iVar32 * 5 + -5,param_4);\n    uStack_1d0 = uVar4 & uVar14 & 1;\n    iVar29 = *(int *)(pdStack_e8 + 2) * 0x28;\n  }" if (parenthesized_expression "((*(int *)(param_2 + 0x244) == 2) && (*(int *)(pdStack_e8 + 4) == 0))" ( (binary_expression "(*(int *)(param_2 + 0x244) == 2) && (*(int *)(pdStack_e8 + 4) == 0)" (parenthesized_expression "(*(int *)(param_2 + 0x244) == 2)" ( (binary_expression "*(int *)(param_2 + 0x244) == 2" (pointer_expression "*(int *)(param_2 + 0x244)" * (cast_expression "(int *)(param_2 + 0x244)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x244)" ( (binary_expression "param_2 + 0x244" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(int *)(pdStack_e8 + 4) == 0)" ( (binary_expression "*(int *)(pdStack_e8 + 4) == 0" (pointer_expression "*(int *)(pdStack_e8 + 4)" * (cast_expression "(int *)(pdStack_e8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdStack_e8 + 4)" ( (binary_expression "pdStack_e8 + 4" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n    uVar4 = FUN_000a4c0c(iVar17,param_2,pdStack_e8,param_4);\n    uVar14 = FUN_000a4c0c(iVar17,param_2,pdStack_e8 + iVar32 * 5 + -5,param_4);\n    uStack_1d0 = uVar4 & uVar14 & 1;\n    iVar29 = *(int *)(pdStack_e8 + 2) * 0x28;\n  }" { (expression_statement "uVar4 = FUN_000a4c0c(iVar17,param_2,pdStack_e8,param_4);" (assignment_expression "uVar4 = FUN_000a4c0c(iVar17,param_2,pdStack_e8,param_4)" identifier = (call_expression "FUN_000a4c0c(iVar17,param_2,pdStack_e8,param_4)" identifier (argument_list "(iVar17,param_2,pdStack_e8,param_4)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "uVar14 = FUN_000a4c0c(iVar17,param_2,pdStack_e8 + iVar32 * 5 + -5,param_4);" (assignment_expression "uVar14 = FUN_000a4c0c(iVar17,param_2,pdStack_e8 + iVar32 * 5 + -5,param_4)" identifier = (call_expression "FUN_000a4c0c(iVar17,param_2,pdStack_e8 + iVar32 * 5 + -5,param_4)" identifier (argument_list "(iVar17,param_2,pdStack_e8 + iVar32 * 5 + -5,param_4)" ( identifier , identifier , (binary_expression "pdStack_e8 + iVar32 * 5 + -5" (binary_expression "pdStack_e8 + iVar32 * 5" identifier + (binary_expression "iVar32 * 5" identifier * number_literal)) + number_literal) , identifier )))) ;) (expression_statement "uStack_1d0 = uVar4 & uVar14 & 1;" (assignment_expression "uStack_1d0 = uVar4 & uVar14 & 1" identifier = (binary_expression "uVar4 & uVar14 & 1" (binary_expression "uVar4 & uVar14" identifier & identifier) & number_literal)) ;) (expression_statement "iVar29 = *(int *)(pdStack_e8 + 2) * 0x28;" (assignment_expression "iVar29 = *(int *)(pdStack_e8 + 2) * 0x28" identifier = (binary_expression "*(int *)(pdStack_e8 + 2) * 0x28" (pointer_expression "*(int *)(pdStack_e8 + 2)" * (cast_expression "(int *)(pdStack_e8 + 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdStack_e8 + 2)" ( (binary_expression "pdStack_e8 + 2" identifier + number_literal) )))) * number_literal)) ;) })) (labeled_statement "LAB_000a6620:\n  pdStack_e8 = (double *)((int)pdStack_e8 + iVar29);" statement_identifier : (expression_statement "pdStack_e8 = (double *)((int)pdStack_e8 + iVar29);" (assignment_expression "pdStack_e8 = (double *)((int)pdStack_e8 + iVar29)" identifier = (cast_expression "(double *)((int)pdStack_e8 + iVar29)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdStack_e8 + iVar29)" ( (binary_expression "(int)pdStack_e8 + iVar29" (cast_expression "(int)pdStack_e8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;)) (if_statement "if (*(int *)((int)pdStack_e8 + 0x14) == 0) goto code_r0x000a6634;" if (parenthesized_expression "(*(int *)((int)pdStack_e8 + 0x14) == 0)" ( (binary_expression "*(int *)((int)pdStack_e8 + 0x14) == 0" (pointer_expression "*(int *)((int)pdStack_e8 + 0x14)" * (cast_expression "(int *)((int)pdStack_e8 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdStack_e8 + 0x14)" ( (binary_expression "(int)pdStack_e8 + 0x14" (cast_expression "(int)pdStack_e8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (goto_statement "goto code_r0x000a6634;" goto statement_identifier ;)) (goto_statement "goto LAB_000a4e98;" goto statement_identifier ;) (labeled_statement "code_r0x000a6634:\n  pcVar37 = *(code **)(puVar36 + 0x3042d8);" statement_identifier : (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042d8);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042d8)" identifier = (pointer_expression "*(code **)(puVar36 + 0x3042d8)" * (cast_expression "(code **)(puVar36 + 0x3042d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042d8)" ( (binary_expression "puVar36 + 0x3042d8" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_000a5778;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Enum "GravityType": Some values do not have unique names */\n/* WARNING: Enum "DisposeType": Some values do not have unique names */\n/* WARNING: Enum "ChannelType": Some values do not have unique names */\n/* WARNING: Enum "PixelChannel": Some values do not have unique names */\n/* WARNING: Enum "ComplianceType": Some values do not have unique names */\n/* WARNING: Enum "ExceptionType": Some values do not have unique names */\n\nMagickBooleanType\nDrawRoundLinecap(Image *image,DrawInfo *draw_info,PrimitiveInfo *primitive_info,\n                ExceptionInfo *exception)\n\n{\n  bool bVar1;\n  bool bVar2;\n  int iVar3;\n  PixelInfo *pPVar4;\n  Image *image_00;\n  PrimitiveType PVar5;\n  MagickBooleanType MVar6;\n  DrawInfo *draw_info_00;\n  PixelInfo *pPVar7;\n  int iVar8;\n  double *pdVar9;\n  uint uVar10;\n  double *pdVar11;\n  double *pdVar12;\n  int iVar13;\n  LineJoin LVar14;\n  double *pdVar15;\n  double *pdVar16;\n  PrimitiveInfo *pPVar17;\n  PrimitiveInfo *pPVar18;\n  MagickBooleanType MVar19;\n  PixelInfo *pPVar20;\n  PixelInfo *pPVar21;\n  int iVar22;\n  LineCap LVar23;\n  size_t sVar24;\n  Image *pIVar25;\n  int iVar26;\n  int iVar27;\n  double *pdVar28;\n  PrimitiveInfo *pPVar29;\n  int iVar30;\n  PixelTrait PVar31;\n  ColorspaceType CVar32;\n  PrimitiveInfo *pPVar33;\n  PrimitiveInfo *pPVar34;\n  size_t sVar35;\n  PrimitiveInfo *pPVar36;\n  undefined4 uVar37;\n  undefined4 uVar38;\n  undefined4 uVar39;\n  size_t sVar40;\n  uint uVar41;\n  uint uVar42;\n  double *pdVar43;\n  int iVar44;\n  uint uVar45;\n  int iVar46;\n  undefined *puVar47;\n  code *pcVar48;\n  size_t sVar49;\n  double dVar50;\n  double dVar51;\n  undefined8 uVar52;\n  double dVar53;\n  double dVar54;\n  double dVar55;\n  undefined8 uVar56;\n  double dVar57;\n  double dVar58;\n  double dVar59;\n  double dVar60;\n  double dVar61;\n  double dVar62;\n  double dVar63;\n  double dVar64;\n  double dVar65;\n  double dVar66;\n  double dVar67;\n  double dVar68;\n  double dVar69;\n  double dVar70;\n  undefined8 uVar71;\n  double dVar72;\n  double dVar73;\n  double dVar74;\n  double dVar75;\n  double dStack_2b8;\n  double dStack_2b0;\n  double dStack_2a8;\n  double dStack_2a0;\n  double dStack_288;\n  double dStack_280;\n  double dStack_278;\n  double dStack_270;\n  double dStack_260;\n  double dStack_258;\n  double dStack_250;\n  double dStack_248;\n  double dStack_240;\n  double dStack_238;\n  uint uStack_22c;\n  MagickBooleanType MStack_1d0;\n  int iStack_188;\n  PrimitiveInfo *pPStack_e8;\n  PrimitiveInfo linecap [5];\n  \n  puVar47 = PTR___stack_chk_guard_003a9230;\n  pPStack_e8 = linecap;\n  image_00 = *(Image **)PTR___stack_chk_guard_003a9230;\n  pPVar18 = primitive_info;\n  pPVar17 = pPStack_e8;\n  pPVar36 = pPStack_e8;\n  do {\n    do {\n      pPVar34 = pPVar17;\n      pPVar29 = pPVar18;\n      pPVar18 = (PrimitiveInfo *)&pPVar29->coordinates;\n      uVar39 = *(undefined4 *)((int)&(pPVar29->point).x + 4);\n      uVar38 = *(undefined4 *)&(pPVar29->point).y;\n      uVar37 = *(undefined4 *)((int)&(pPVar29->point).y + 4);\n      *(undefined4 *)&(pPVar34->point).x = *(undefined4 *)&(pPVar29->point).x;\n      *(undefined4 *)((int)&(pPVar34->point).x + 4) = uVar39;\n      *(undefined4 *)&(pPVar34->point).y = uVar38;\n      *(undefined4 *)((int)&(pPVar34->point).y + 4) = uVar37;\n      pPVar17 = (PrimitiveInfo *)&pPVar34->coordinates;\n    } while (pPVar18 != (PrimitiveInfo *)&primitive_info->closed_subpath);\n    pPVar36 = pPVar36 + 1;\n    PVar5 = pPVar29->primitive;\n    pPVar34->coordinates = *(size_t *)pPVar18;\n    pPVar34->primitive = PVar5;\n    pPVar18 = primitive_info;\n    pPVar17 = pPVar36;\n  } while (pPVar36 != linecap + 4);\n  dVar50 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x47c8);\n  linecap[4].primitive = UndefinedPrimitive;\n  linecap[0].coordinates = 4;\n  linecap[1].point.x = linecap[1].point.x + dVar50;\n  linecap[2].point.x = linecap[2].point.x + dVar50;\n  linecap[2].point.y = linecap[2].point.y + dVar50;\n  linecap[3].point.y = linecap[3].point.y + dVar50;\n  MVar6 = DrawPolygonPrimitive(image,draw_info,pPStack_e8,exception);\n  if (image_00 == *(Image **)puVar47) {\n    return MVar6;\n  }\n  puVar47 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  if (image_00->debug != MagickFalse) {\n    (**(code **)(puVar47 + 0x3044d0))\n              (0x80,*(int *)(puVar47 + 0x303bd8) + 0x38b0,*(int *)(puVar47 + 0x303bd8) + 0x45dc,\n               0x168f,*(int *)(puVar47 + 0x303bd8) + 0x3dd8);\n  }\n  draw_info_00 = (DrawInfo *)(**(code **)(puVar47 + 0x3044ec))(0,draw_info);\n  pPVar4 = &draw_info_00->fill;\n  pPVar21 = &draw_info->stroke;\n  do {\n    pPVar20 = pPVar21;\n    pPVar7 = pPVar4;\n    pPVar21 = (PixelInfo *)&pPVar20->fuzz;\n    CVar32 = pPVar20->colorspace;\n    PVar31 = pPVar20->alpha_trait;\n    uVar37 = *(undefined4 *)&pPVar20->field_0xc;\n    pPVar7->storage_class = pPVar20->storage_class;\n    pPVar7->colorspace = CVar32;\n    pPVar7->alpha_trait = PVar31;\n    *(undefined4 *)&pPVar7->field_0xc = uVar37;\n    pPVar4 = (PixelInfo *)&pPVar7->fuzz;\n  } while (pPVar21 != (PixelInfo *)&(draw_info->stroke).index);\n  uVar37 = *(undefined4 *)((int)&pPVar20->fuzz + 4);\n  pIVar25 = draw_info_00->fill_pattern;\n  *(undefined4 *)&pPVar7->fuzz = *(undefined4 *)pPVar21;\n  *(undefined4 *)((int)&pPVar7->fuzz + 4) = uVar37;\n  if (pIVar25 != (Image *)0x0) {\n    pIVar25 = (Image *)(**(code **)(puVar47 + 0x30423c))();\n    draw_info_00->fill_pattern = pIVar25;\n  }\n  if (draw_info_00->stroke_pattern != (Image *)0x0) {\n    pIVar25 = (Image *)(**(code **)(puVar47 + 0x304b20))\n                                 (draw_info_00->stroke_pattern,0,0,1,exception);\n    draw_info_00->fill_pattern = pIVar25;\n  }\n  PVar5 = pPStack_e8->primitive;\n  *(undefined4 *)((int)&(draw_info_00->stroke).alpha + 4) = 0;\n  *(undefined4 *)&(draw_info_00->stroke).alpha = 0;\n  *(undefined4 *)((int)&draw_info_00->stroke_width + 4) = 0;\n  *(undefined4 *)&draw_info_00->stroke_width = 0;\n  draw_info_00->fill_rule = NonZeroRule;\n  if (PVar5 != UndefinedPrimitive) {\n    iVar8 = *(int *)(puVar47 + 0x303bd0);\n    iVar26 = *(int *)(puVar47 + 0x303bd8);\n    MStack_1d0 = MagickTrue;\n    dVar50 = *(double *)(iVar8 + 0x13f8);\n    iVar22 = *(int *)(puVar47 + 0x303bd0);\n    dVar51 = *(double *)(iVar22 + 0x1410);\n    uVar52 = *(undefined8 *)(iVar26 + 0x34a0);\nLAB_000a4e98:\n    sVar40 = pPStack_e8->coordinates;\n    if (sVar40 == 1) {\n      iVar44 = 0x28;\n      goto LAB_000a6620;\n    }\n    pdVar9 = (double *)(**(code **)(puVar47 + 0x3047fc))(sVar40 + 2,0x28);\n    if (pdVar9 != (double *)0x0) {\n      iVar44 = sVar40 * 0x28;\n      (**(code **)(puVar47 + 0x304648))(pdVar9,pPStack_e8,iVar44);\n      pdVar11 = pdVar9 + sVar40 * 5;\n      if ((ABS(pPStack_e8[sVar40 - 1].point.x - (pPStack_e8->point).x) < dVar50) &&\n         (ABS(pPStack_e8[sVar40 - 1].point.y - (pPStack_e8->point).y) < dVar50)) {\n        if (draw_info->linejoin - MiterJoin < 2) {\n          pPVar18 = pPStack_e8 + 1;\n          do {\n            pdVar12 = pdVar11;\n            pPVar17 = pPVar18;\n            pPVar18 = (PrimitiveInfo *)&pPVar17->coordinates;\n            sVar24 = *(size_t *)&(pPVar17->point).y;\n            sVar49 = *(size_t *)((int)&(pPVar17->point).y + 4);\n            sVar35 = *(size_t *)&(pPVar17->point).x;\n            *(size_t *)((int)pdVar12 + 4) = *(size_t *)((int)&(pPVar17->point).x + 4);\n            *(size_t *)(pdVar12 + 1) = sVar24;\n            *(size_t *)pdVar12 = sVar35;\n            *(size_t *)((int)pdVar12 + 0xc) = sVar49;\n            pdVar11 = pdVar12 + 2;\n          } while (pPVar18 != (PrimitiveInfo *)&pPStack_e8[1].closed_subpath);\n          iVar44 = iVar44 + 0x28;\n          sVar49 = *(size_t *)pPVar18;\n          pdVar11 = pdVar9 + sVar40 * 5 + 5;\n          *(PrimitiveType *)((int)pdVar12 + 0x14) = pPVar17->primitive;\n          *(size_t *)(pdVar12 + 2) = sVar49;\n          sVar40 = sVar40 + 1;\n        }\n        iStack_188 = 1;\n        bVar2 = true;\n        bVar1 = (int)sVar40 < 2;\n        *(size_t *)((int)pdVar11 + 0x14) = 0;\n        if (bVar1) goto LAB_000a6124;\nLAB_000a4fe8:\n        dVar72 = *(double *)(iVar8 + 0x13f8);\n        dStack_260 = pdVar9[5] - *pdVar9;\n        dStack_258 = pdVar9[6] - pdVar9[1];\n        if ((dVar72 <= ABS(dStack_260)) || (dVar72 <= ABS(dStack_258))) {\n          sVar49 = 1;\n        }\n        else {\n          sVar49 = 1;\n          pdVar11 = pdVar9 + 10;\n          do {\n            sVar49 = sVar49 + 1;\n            if (sVar49 == sVar40) {\n              LVar23 = draw_info->linecap;\n              sVar49 = sVar40;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar11 - *pdVar9;\n            dStack_258 = pdVar11[1] - pdVar9[1];\n          } while ((ABS(dStack_260) < dVar72) && (pdVar11 = pdVar11 + 5, ABS(dStack_258) < dVar72));\n        }\nLAB_000a5110:\n        uVar10 = sVar40 * 2;\n        pdVar11 = (double *)(**(code **)(puVar47 + 0x3047fc))(uVar10 + 0x618,0x10);\n        pdVar12 = (double *)(**(code **)(puVar47 + 0x3047fc))(uVar10 + 0x618,0x10);\n        if (pdVar11 == (double *)0x0) {\n          if (pdVar12 != (double *)0x0) {\n            (**(code **)(puVar47 + 0x3042b0))(pdVar12);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar47 + 0x3042b0))(pdVar9);\n          uVar37 = 0x1c93;\n          goto LAB_000a5724;\n        }\n        if (pdVar12 == (double *)0x0) {\n          (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n          goto LAB_000a6cbc;\n        }\n        if (ABS(dStack_260) < *(double *)(iVar8 + 0x13f8)) {\n          dVar72 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar63 = *(double *)(iVar13 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar63 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n        }\n        else if (ABS(dStack_258) < *(double *)(iVar8 + 0x13f8)) {\n          dVar63 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar72 = *(double *)(iVar13 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar63 = dStack_258 / dStack_260;\n          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a78) / dVar63;\n        }\nLAB_000a51b0:\n        dVar53 = (double)(**(code **)(puVar47 + 0x304288))(&draw_info->affine);\n        iVar13 = draw_info->miterlimit * draw_info->miterlimit;\n        dVar53 = dVar53 * draw_info->stroke_width *\n                 *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1400);\n        dVar57 = (double)iVar13;\n        if (iVar13 < 0) {\n          dVar57 = dVar57 + *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1418);\n        }\n        dVar57 = dVar57 * dVar53 * dVar53;\n        if (draw_info->linecap == SquareCap) {\n          iVar13 = *(int *)(puVar47 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar54 = 0.0;\n              if (sVar40 == 1) {\n                dVar64 = 0.0;\n                sVar35 = 1;\nLAB_000a6998:\n                pdVar16 = pdVar9 + (sVar35 - 1) * 5;\n              }\n              else {\n                pdVar16 = pdVar9 + 5;\n                dVar64 = 0.0;\n              }\n            }\n            else {\n              dVar75 = *(double *)(iVar8 + 0x13f8);\n              dVar64 = *pdVar9 - pdVar9[5];\n              dVar54 = pdVar9[1] - pdVar9[6];\n              if ((dVar75 <= ABS(dVar64)) || (dVar75 <= ABS(dVar54))) {\n                pdVar16 = pdVar9 + 5;\n              }\n              else {\n                sVar24 = 1;\n                pdVar28 = pdVar9 + 10;\n                do {\n                  pdVar16 = pdVar28;\n                  sVar24 = sVar24 + 1;\n                  sVar35 = sVar40;\n                  if (sVar24 == sVar40) goto LAB_000a6998;\n                  dVar64 = *pdVar9 - *pdVar16;\n                  dVar54 = pdVar9[1] - pdVar16[1];\n                } while ((ABS(dVar64) < dVar75) && (pdVar28 = pdVar16 + 5, ABS(dVar54) < dVar75));\n              }\n            }\n            dVar75 = (double)(**(code **)(puVar47 + 0x304a08))(dVar64,dVar54);\n            iVar13 = sVar40 - 2;\n            dVar61 = pdVar16[1];\n            pdVar43 = (double *)((int)pdVar9 + iVar44 + -0x28);\n            pdVar28 = pdVar9 + iVar13 * 5;\n            *pdVar9 = *pdVar16 + (dVar64 * (dVar53 + dVar75)) / dVar75;\n            pdVar9[1] = dVar61 + (dVar54 * (dVar53 + dVar75)) / dVar75;\n            if (-1 < iVar13) {\n              dVar75 = *(double *)(iVar8 + 0x13f8);\n              dVar64 = *pdVar43 - *pdVar28;\n              dVar54 = pdVar43[1] - pdVar28[1];\n              if (ABS(dVar64) < dVar75) {\n                pdVar16 = pdVar9 + (sVar40 - 3) * 5;\n                do {\n                  pdVar28 = pdVar16;\n                  if (dVar75 <= ABS(dVar54)) {\n                    pdVar28 = pdVar9 + iVar13 * 5;\n                    break;\n                  }\n                  iVar13 = iVar13 + -1;\n                  if (iVar13 == -1) break;\n                  dVar64 = *pdVar43 - *pdVar28;\n                  dVar54 = pdVar43[1] - pdVar28[1];\n                  pdVar16 = pdVar28 + -5;\n                } while (ABS(dVar64) < dVar75);\n              }\n            }\n            dVar75 = (double)(**(code **)(puVar47 + 0x304a08))(dVar64,dVar54);\n            dVar61 = pdVar28[1];\n            *pdVar43 = *pdVar28 + (dVar64 * (dVar53 + dVar75)) / dVar75;\n            pdVar43[1] = dVar61 + (dVar54 * (dVar53 + dVar75)) / dVar75;\n            goto LAB_000a5220;\n          }\n        }\n        else {\nLAB_000a5220:\n          iVar13 = *(int *)(puVar47 + 0x303bd0);\n        }\n        dVar54 = dVar53 * dVar53;\n        dVar64 = dVar54 / (dVar72 * dVar72 + *(double *)(iVar13 + 0x1438));\n        dVar75 = SQRT(dVar64);\n        if (dVar64 < 0.0) {\n          (**(code **)(puVar47 + 0x304770))();\n        }\n        dVar72 = dVar72 * dVar75;\n        pdVar16 = pdVar9 + sVar49 * 5;\n        dVar69 = *pdVar16;\n        dVar73 = pdVar16[1];\n        dVar68 = dVar72 + pdVar9[1];\n        dVar66 = pdVar9[1] - dVar72;\n        dVar64 = dVar75 + *pdVar9;\n        dStack_238 = dVar73 - dVar72;\n        dStack_240 = dVar69 - dVar75;\n        dVar67 = *pdVar9 - dVar75;\n        dVar62 = dVar67;\n        dVar61 = dVar68;\n        dStack_250 = dVar75 + dVar69;\n        dStack_248 = dVar72 + dVar73;\n        if (0.0 < dVar75 * dStack_258 - dVar72 * dStack_260) {\n          dVar62 = dVar64;\n          dVar61 = dVar66;\n          dVar64 = dVar67;\n          dVar66 = dVar68;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar75 + dVar69;\n          dStack_238 = dVar72 + dVar73;\n        }\n        sVar35 = sVar49 + 1;\n        *pdVar12 = dVar62;\n        pdVar12[1] = dVar66;\n        *pdVar11 = dVar64;\n        pdVar11[1] = dVar61;\n        if ((int)sVar35 < (int)sVar40) {\n          iVar27 = *(int *)(puVar47 + 0x303bd8);\n          iVar44 = 1;\n          iVar46 = 1;\n          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a78);\n          dVar75 = *(double *)(*(int *)(puVar47 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar10;\n          do {\n            dVar55 = pdVar16[6];\n            dVar58 = pdVar16[5];\n            dVar59 = dVar55 - dVar73;\n            dVar65 = dVar58 - dVar69;\n            dVar60 = dVar58 - dVar69;\n            dVar67 = dStack_238;\n            dVar68 = dStack_240;\n            dVar70 = dStack_248;\n            dVar74 = dStack_250;\n            if (*(double *)(iVar27 + -0x2e38) <=\n                dVar65 * dVar65 + (dVar55 - dVar73) * (dVar55 - dVar73)) {\n              if (ABS(dVar65) < *(double *)(iVar8 + 0x13f8)) {\n                dVar67 = 0.0;\n                dVar68 = dVar54;\n                if (0.0 <= dVar65) {\n                  if (0.0 <= dVar55 - dVar73) goto LAB_000a53e0;\n                }\n                else if (dVar55 - dVar73 < 0.0) {\nLAB_000a53e0:\n                  dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar59) < *(double *)(iVar8 + 0x13f8)) {\n                dVar65 = 0.0;\n                dVar68 = dVar54 / dVar75;\n                if (0.0 <= dVar55 - dVar73) {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (dVar58 - dVar69 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (0.0 <= dVar58 - dVar69) {\nLAB_000a5880:\n                    dVar67 = *(double *)(iVar30 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar67 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar65 = (dVar55 - dVar73) / (dVar58 - dVar69);\n                dVar67 = dVar72 / dVar65;\n                dVar68 = dVar54 / (dVar67 * dVar67 + *(double *)(iVar13 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar28 = pdVar9 + sVar49 * 5;\n              dVar70 = SQRT(dVar68);\n              if (dVar68 < 0.0) {\n                (**(code **)(puVar47 + 0x304770))();\n                dVar69 = *pdVar28;\n                dVar73 = pdVar28[1];\n                dVar58 = pdVar16[5];\n                dVar55 = pdVar16[6];\n              }\n              dVar67 = dVar67 * dVar70;\n              dStack_2a8 = dVar58 - dVar70;\n              dStack_2a0 = dVar55 - dVar67;\n              dStack_278 = dVar69 - dVar70;\n              dStack_270 = dVar73 - dVar67;\n              dStack_2b8 = dVar70 + dVar58;\n              dStack_2b0 = dVar67 + dVar55;\n              dStack_288 = dVar70 + dVar69;\n              dStack_280 = dVar67 + dVar73;\n              if (0.0 < dVar59 * dVar70 - dVar60 * dVar67) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar70 + dVar58;\n                dStack_2a0 = dVar67 + dVar55;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar70 + dVar69;\n                dStack_270 = dVar67 + dVar73;\n              }\n              dVar67 = dVar63 - dVar65;\n              dVar69 = dStack_250;\n              dVar73 = dStack_248;\n              dVar55 = dStack_238;\n              dVar58 = dStack_240;\n              if (*(double *)(iVar8 + 0x13f8) <= ABS(dVar67)) {\n                dVar69 = (((dVar64 * dVar63 - dVar61) - dVar65 * dStack_2b8) + dStack_2b0) / dVar67;\n                dVar58 = (((dVar63 * dVar62 - dVar66) - dVar65 * dStack_2a8) + dStack_2a0) / dVar67;\n                dVar73 = (dVar69 - dVar64) * dVar63 + dVar61;\n                dVar55 = (dVar58 - dVar62) * dVar63 + dVar66;\n              }\n              if ((int)uStack_22c <= iVar46 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar11 = (double *)\n                            (**(code **)(puVar47 + 0x304710))(pdVar11,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                }\n              }\n              if (iVar44 + 0x618 < (int)uVar10) {\n                if (pdVar11 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a5710:\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar10) {\n                  pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  if (pdVar11 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar12 != (double *)0x0) goto LAB_000a5700;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar48)(pdVar9);\n                  uVar37 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar12 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                uVar10 = uVar10 + 0x618;\n                if (pdVar11 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar12 == (double *)0x0) {\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  goto LAB_000a5710;\n                }\n              }\n              LVar14 = draw_info->linejoin;\n              dVar62 = dStack_278;\n              dVar61 = dStack_280;\n              dVar64 = dStack_288;\n              dVar66 = dStack_270;\n              sVar49 = sVar35;\n              dVar63 = dVar65;\n              if (dVar60 * dStack_258 - dVar59 * dStack_260 <= 0.0) {\n                if (LVar14 != RoundJoin) {\n                  if (LVar14 == BevelJoin) {\n                    pdVar28 = pdVar11 + iVar46 * 2;\n                    pdVar12[iVar44 * 2] = dStack_240;\n                    (pdVar12 + iVar44 * 2)[1] = dStack_238;\n                    pdVar12[iVar44 * 2 + 2] = dStack_278;\n                    (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if (dVar57 < (dVar58 - dVar69) * (dVar58 - dVar69) +\n                                   (dVar55 - dVar73) * (dVar55 - dVar73)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar44 = iVar44 + 1;\n                      iVar46 = iVar46 + 1;\n                      *pdVar43 = dVar58;\n                      pdVar43[1] = dVar55;\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar30 = iVar46 + 1;\n                pdVar43 = pdVar11 + iVar46 * 2;\n                if ((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57) {\n                  *pdVar43 = dVar69;\n                  pdVar43[1] = dVar73;\n                }\n                else {\n                  iVar30 = iVar46 + 2;\n                  *pdVar43 = dStack_250;\n                  pdVar43[1] = dStack_248;\n                  pdVar11[iVar46 * 2 + 2] = dStack_288;\n                  (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                }\n                dVar69 = *pdVar28;\n                dVar68 = pdVar28[1];\n                dVar63 = dVar68;\n                dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_238 - dVar68,dStack_240 - dVar69);\n                dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_270 - dVar63,dStack_278 - dVar69);\n                if (dVar63 < dVar67) {\n                  dVar63 = dVar63 + *(double *)(iVar26 + 0x34a0);\n                }\n                dVar63 = dVar63 - dVar67;\n                dVar73 = *(double *)(iVar13 + 0x1438) / dVar53;\n                dVar70 = SQRT(dVar73);\n                if (dVar73 < 0.0) {\n                  (**(code **)(puVar47 + 0x304770))();\n                }\n                dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar63 / (dVar70 + dVar70));\n                dVar70 = *(double *)(iVar22 + 0x1410);\n                if (dVar73 < dVar70) {\n                  uVar42 = (uint)dVar73;\n                }\n                else {\n                  uVar42 = (int)(dVar73 - dVar70) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar30 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar46 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar11,iVar46,0x10);\n                  }\n                  else {\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  }\n                }\n                if (uVar42 + 0x618 < 0x4000001) {\n                  if ((int)uVar10 <= (int)(iVar44 + 0x618 + uVar42)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uVar10 < uVar42 + 0x618) goto LAB_000a67d4;\n                    iVar46 = uVar42 + uVar10;\n                    uVar10 = iVar46 + 0x618;\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,iVar46 + 0xc30,0x10);\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar11 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a6d2c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar12 = (double *)(*pcVar48)(pdVar12);\nLAB_000a64c4:\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a6884;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar28 = pdVar12 + iVar44 * 2;\n                *pdVar28 = dStack_240;\n                pdVar28[1] = dStack_238;\n                if (1 < (int)uVar42) {\n                  uVar71 = *(undefined8 *)(iVar26 + 0x34a0);\n                  uVar41 = 1;\n                  do {\n                    uVar45 = uVar41 + 1;\n                    dVar70 = ((double)(int)uVar41 * dVar63) / (double)(int)uVar42 + dVar67;\n                    uVar56 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar56);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar69;\n                    uVar56 = (*pcVar48)(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar56);\n                    pdVar28[3] = dVar53 * dVar73 + dVar68;\n                    uVar41 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar42);\n                }\n                *pdVar12 = dStack_278;\n                pdVar12[1] = dStack_270;\n                dStack_258 = dVar59;\n                dStack_260 = dVar60;\n                dVar67 = dStack_2a0;\n                dVar68 = dStack_2a8;\n                dVar70 = dStack_2b0;\n                dVar74 = dStack_2b8;\n                iVar44 = 1;\n                iVar46 = iVar30;\n                dVar63 = dVar65;\n              }\n              else {\n                if (LVar14 != RoundJoin) {\n                  if (LVar14 == BevelJoin) {\n                    iVar30 = iVar46 * 2;\n                    iVar3 = iVar46 * 2;\n                    iVar46 = iVar46 + 2;\n                    pdVar11[iVar30] = dStack_250;\n                    (pdVar11 + iVar30)[1] = dStack_248;\n                    pdVar28 = pdVar12 + iVar44 * 2;\n                    pdVar11[iVar3 + 2] = dStack_288;\n                    (pdVar11 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar58;\n                      pdVar28[1] = dVar55;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_240;\n                      pdVar28[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                          (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar43 = dStack_240;\n                      pdVar43[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar30 = iVar44 + 1;\n                pdVar43 = pdVar12 + iVar44 * 2;\n                if ((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57) {\n                  *pdVar43 = dVar58;\n                  pdVar43[1] = dVar55;\n                }\n                else {\n                  iVar30 = iVar44 + 2;\n                  *pdVar43 = dStack_240;\n                  pdVar43[1] = dStack_238;\n                  pdVar12[iVar44 * 2 + 2] = dStack_278;\n                  (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                }\n                dVar68 = *pdVar28;\n                dVar69 = pdVar28[1];\n                dVar63 = dVar68;\n                dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_248 - dVar69,dStack_250 - dVar68);\n                dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_280 - dVar69,dStack_288 - dVar63);\n                if (dVar67 < dVar63) {\n                  dVar67 = dVar67 + *(double *)(iVar26 + 0x34a0);\n                }\n                dVar73 = dVar67 - dVar63;\n                dVar70 = *(double *)(iVar13 + 0x1438) / dVar53;\n                dVar74 = SQRT(dVar70);\n                if (dVar70 < 0.0) {\n                  (**(code **)(puVar47 + 0x304770))();\n                }\n                dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar73 / (dVar74 + dVar74));\n                if (dVar73 < dVar51) {\n                  uVar41 = (uint)dVar73;\n                  uVar42 = uVar41 + 0x618;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                  if (uVar42 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar11 = (double *)(*pcVar48)(pdVar11);\n                }\n                else {\n                  uVar41 = (int)(dVar73 - dVar51) | 0x80000000;\n                  uVar42 = uVar41 + 0x618;\n                  if (0x4000000 < uVar42) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar46 + 0x618 + uVar41)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uStack_22c < uVar42) goto LAB_000a66a4;\n                    iVar44 = uStack_22c + uVar41;\n                    uStack_22c = iVar44 + 0x618;\n                    pdVar11 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar11,iVar44 + 0xc30,0x10);\n                  }\n                }\n                if (iVar30 + 0x618 < (int)uVar10) {\n                  if (pdVar11 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a665c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar10 < 0xfffff9e8) {\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                    uVar10 = uVar10 + 0x618;\n                  }\n                  else {\n                    pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  }\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a664c;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar28 = pdVar11 + iVar46 * 2;\n                *pdVar28 = dStack_250;\n                pdVar28[1] = dStack_248;\n                if (1 < (int)uVar41) {\n                  dVar63 = dVar63 - dVar67;\n                  uVar42 = 1;\n                  do {\n                    uVar45 = uVar42 + 1;\n                    dVar70 = ((double)(int)uVar42 * dVar63) / (double)(int)uVar41 + dVar67;\n                    uVar71 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar71);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar68;\n                    uVar71 = (*pcVar48)(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar71);\n                    pdVar28[3] = dVar53 * dVar73 + dVar69;\n                    uVar42 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar41);\n                }\n                *pdVar11 = dStack_288;\n                pdVar11[1] = dStack_280;\n                dStack_258 = dVar59;\n                dStack_260 = dVar60;\n                dVar67 = dStack_2a0;\n                dVar68 = dStack_2a8;\n                dVar70 = dStack_2b0;\n                dVar74 = dStack_2b8;\n                iVar44 = iVar30;\n                iVar46 = 1;\n                dVar63 = dVar65;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar74;\n            dStack_248 = dVar70;\n            dStack_240 = dVar68;\n            dStack_238 = dVar67;\n            if (sVar35 + 1 == sVar40) goto LAB_000a5a58;\n            pdVar16 = pdVar16 + 5;\n            sVar35 = sVar35 + 1;\n            dVar69 = pdVar9[sVar49 * 5];\n            dVar73 = (pdVar9 + sVar49 * 5)[1];\n          } while( true );\n        }\n        iVar44 = 4;\n        iVar27 = 0x10;\n        iVar46 = 0x10;\n        iVar13 = 2;\n        goto LAB_000a5a70;\n      }\n      bVar1 = (int)sVar40 < 2;\n      iStack_188 = 0;\n      bVar2 = false;\n      *(size_t *)((int)pdVar11 + 0x14) = 0;\n      if (!bVar1) goto LAB_000a4fe8;\nLAB_000a6124:\n      if (sVar40 != 1) {\n        sVar49 = 1;\n        dStack_258 = 0.0;\n        dStack_260 = 0.0;\n        goto LAB_000a5110;\n      }\n      sVar49 = 1;\n      dStack_258 = 0.0;\n      LVar23 = draw_info->linecap;\n      dStack_260 = 0.0;\njoined_r0x000a50f8:\n      if (LVar23 == RoundCap) {\n        pcVar48 = *(code **)(puVar47 + 0x304644);\n        if (!bVar2) {\n          sVar49 = sVar49 - 1;\n          goto LAB_000a5110;\n        }\n      }\n      else {\n        pcVar48 = *(code **)(puVar47 + 0x304644);\n      }\n      pPVar18 = (PrimitiveInfo *)(*pcVar48)(0x28);\n      pdVar11 = pdVar9;\n      pPVar17 = pPVar18;\n      do {\n        pPVar36 = pPVar17;\n        pdVar12 = pdVar11;\n        pdVar11 = pdVar12 + 2;\n        sVar35 = *(size_t *)((int)pdVar12 + 4);\n        sVar49 = *(size_t *)(pdVar12 + 1);\n        sVar40 = *(size_t *)((int)pdVar12 + 0xc);\n        *(size_t *)&(pPVar36->point).x = *(size_t *)pdVar12;\n        *(size_t *)((int)&(pPVar36->point).x + 4) = sVar35;\n        *(size_t *)&(pPVar36->point).y = sVar49;\n        *(size_t *)((int)&(pPVar36->point).y + 4) = sVar40;\n        pPVar17 = (PrimitiveInfo *)&pPVar36->coordinates;\n      } while (pdVar11 != pdVar9 + 4);\n      PVar5 = *(PrimitiveType *)((int)pdVar12 + 0x14);\n      pcVar48 = *(code **)(puVar47 + 0x3042b0);\n      pPVar36->coordinates = *(size_t *)pdVar11;\n      pPVar36->primitive = PVar5;\n      pPVar18->coordinates = 0;\n      (*pcVar48)(pdVar9);\n      goto LAB_000a61cc;\n    }\n    uVar37 = 0x1c57;\nLAB_000a5724:\n    (**(code **)(puVar47 + 0x304210))\n              (exception,*(int *)(puVar47 + 0x303bd8) + 0x38b0,*(int *)(puVar47 + 0x303bd8) + 0x45c8\n               ,uVar37,400,*(int *)(puVar47 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar47 + 0x303bd0) + 0x3e28,*(int *)(puVar47 + 0x303bd4) + -0x3688);\n    MStack_1d0 = MagickFalse;\n    goto LAB_000a5774;\n  }\n  MStack_1d0 = MagickTrue;\nLAB_000a5774:\n  pcVar48 = *(code **)(puVar47 + 0x3042d8);\nLAB_000a5778:\n  (*pcVar48)(draw_info_00);\n  if (image_00->debug != MagickFalse) {\n    (**(code **)(puVar47 + 0x3044d0))\n              (0x80,*(int *)(puVar47 + 0x303bd8) + 0x38b0,*(int *)(puVar47 + 0x303bd8) + 0x45dc,\n               0x16b4,*(int *)(puVar47 + 0x303bd8) + 0x3df8);\n  }\n  return MStack_1d0;\nLAB_000a5a58:\n  iVar13 = iVar46 + 1;\n  iVar46 = iVar46 << 4;\n  iVar27 = iVar44 << 4;\n  iVar44 = iVar44 + 1 + iVar13;\nLAB_000a5a70:\n  pcVar48 = *(code **)(puVar47 + 0x3047fc);\n  iVar44 = iStack_188 * 2 + iVar44;\n  *(double *)((int)pdVar11 + iVar46) = dStack_250;\n  ((double *)((int)pdVar11 + iVar46))[1] = dStack_248;\n  *(double *)((int)pdVar12 + iVar27) = dStack_240;\n  ((double *)((int)pdVar12 + iVar27))[1] = dStack_238;\n  pPVar18 = (PrimitiveInfo *)(*pcVar48)(iVar44 + 2,0x28);\n  if (pPVar18 == (PrimitiveInfo *)0x0) {\n    (**(code **)(puVar47 + 0x304210))\n              (exception,*(int *)(puVar47 + 0x303bd8) + 0x38b0,*(int *)(puVar47 + 0x303bd8) + 0x45c8\n               ,0x1dbc,400,*(int *)(puVar47 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar47 + 0x303bd0) + 0x3e28,*(int *)(puVar47 + 0x303bd4) + -0x3688);\n    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\n    (**(code **)(puVar47 + 0x3042b0))(pdVar9);\n    MStack_1d0 = MagickFalse;\n    goto LAB_000a5774;\n  }\n  pdVar43 = pdVar9 + 4;\n  pdVar16 = pdVar9;\n  pPVar17 = pPVar18;\n  pdVar28 = pdVar11;\n  pPVar36 = pPVar18;\n  do {\n    do {\n      pPVar29 = pPVar17;\n      pdVar15 = pdVar16 + 2;\n      sVar35 = *(size_t *)((int)pdVar16 + 4);\n      sVar49 = *(size_t *)(pdVar16 + 1);\n      sVar40 = *(size_t *)((int)pdVar16 + 0xc);\n      *(size_t *)&(pPVar29->point).x = *(size_t *)pdVar16;\n      *(size_t *)((int)&(pPVar29->point).x + 4) = sVar35;\n      *(size_t *)&(pPVar29->point).y = sVar49;\n      *(size_t *)((int)&(pPVar29->point).y + 4) = sVar40;\n      pdVar16 = pdVar15;\n      pPVar17 = (PrimitiveInfo *)&pPVar29->coordinates;\n    } while (pdVar15 != pdVar43);\n    pdVar15 = pdVar28 + 2;\n    PVar5 = *(PrimitiveType *)((int)pdVar9 + 0x24);\n    pPVar29->coordinates = *(size_t *)pdVar43;\n    pPVar29->primitive = PVar5;\n    uVar39 = *(undefined4 *)((int)pdVar28 + 4);\n    uVar38 = *(undefined4 *)(pdVar28 + 1);\n    uVar37 = *(undefined4 *)((int)pdVar28 + 0xc);\n    *(undefined4 *)&(pPVar36->point).x = *(undefined4 *)pdVar28;\n    *(undefined4 *)((int)&(pPVar36->point).x + 4) = uVar39;\n    *(undefined4 *)&(pPVar36->point).y = uVar38;\n    *(undefined4 *)((int)&(pPVar36->point).y + 4) = uVar37;\n    pdVar16 = pdVar9;\n    pPVar17 = pPVar36 + 1;\n    pdVar28 = pdVar15;\n    pPVar36 = pPVar36 + 1;\n  } while (pdVar11 + iVar13 * 2 != pdVar15);\n  pPVar36 = pPVar18 + iVar13;\n  pPVar17 = pPVar36;\n  if (bVar2) {\n    do {\n      pPVar29 = pPVar17;\n      pdVar28 = pdVar16 + 2;\n      sVar35 = *(size_t *)((int)pdVar16 + 4);\n      sVar49 = *(size_t *)(pdVar16 + 1);\n      sVar40 = *(size_t *)((int)pdVar16 + 0xc);\n      *(size_t *)&(pPVar29->point).x = *(size_t *)pdVar16;\n      *(size_t *)((int)&(pPVar29->point).x + 4) = sVar35;\n      *(size_t *)&(pPVar29->point).y = sVar49;\n      *(size_t *)((int)&(pPVar29->point).y + 4) = sVar40;\n      pdVar16 = pdVar28;\n      pPVar17 = (PrimitiveInfo *)&pPVar29->coordinates;\n    } while (pdVar28 != pdVar43);\n    iVar13 = iVar13 + 1;\n    PVar5 = *(PrimitiveType *)((int)pdVar9 + 0x24);\n    pPVar29->coordinates = *(size_t *)(pdVar9 + 4);\n    pPVar29->primitive = PVar5;\n    uVar39 = *(undefined4 *)((int)&(pPVar18->point).x + 4);\n    uVar38 = *(undefined4 *)&(pPVar18->point).y;\n    uVar37 = *(undefined4 *)((int)&(pPVar18->point).y + 4);\n    pPVar17 = pPVar18 + iVar13;\n    *(undefined4 *)&(pPVar36->point).x = *(undefined4 *)&(pPVar18->point).x;\n    *(undefined4 *)((int)&(pPVar36->point).x + 4) = uVar39;\n    *(undefined4 *)&(pPVar36->point).y = uVar38;\n    *(undefined4 *)((int)&(pPVar36->point).y + 4) = uVar37;\n  }\n  iStack_188 = iVar44 - iStack_188;\n  if (iVar13 < iStack_188) {\n    pdVar16 = pdVar9;\n    pPVar17 = pPVar18 + iVar13;\n    pdVar28 = pdVar12 + ((iStack_188 + 0xfffffff) - iVar13) * 2;\n    pPVar29 = pPVar18 + iVar13;\n    do {\n      do {\n        pPVar34 = pPVar17;\n        pdVar15 = pdVar16 + 2;\n        sVar35 = *(size_t *)((int)pdVar16 + 4);\n        sVar49 = *(size_t *)(pdVar16 + 1);\n        sVar40 = *(size_t *)((int)pdVar16 + 0xc);\n        *(size_t *)&(pPVar34->point).x = *(size_t *)pdVar16;\n        *(size_t *)((int)&(pPVar34->point).x + 4) = sVar35;\n        *(size_t *)&(pPVar34->point).y = sVar49;\n        *(size_t *)((int)&(pPVar34->point).y + 4) = sVar40;\n        pdVar16 = pdVar15;\n        pPVar17 = (PrimitiveInfo *)&pPVar34->coordinates;\n      } while (pdVar15 != pdVar43);\n      pdVar15 = pdVar28 + -2;\n      PVar5 = *(PrimitiveType *)((int)pdVar9 + 0x24);\n      pPVar34->coordinates = *(size_t *)pdVar43;\n      pPVar34->primitive = PVar5;\n      uVar39 = *(undefined4 *)((int)pdVar28 + 4);\n      uVar38 = *(undefined4 *)(pdVar28 + 1);\n      uVar37 = *(undefined4 *)((int)pdVar28 + 0xc);\n      *(undefined4 *)&(pPVar29->point).x = *(undefined4 *)pdVar28;\n      *(undefined4 *)((int)&(pPVar29->point).x + 4) = uVar39;\n      *(undefined4 *)&(pPVar29->point).y = uVar38;\n      *(undefined4 *)((int)&(pPVar29->point).y + 4) = uVar37;\n      pdVar16 = pdVar9;\n      pPVar17 = pPVar29 + 1;\n      pdVar28 = pdVar15;\n      pPVar29 = pPVar29 + 1;\n    } while (pdVar12 + -2 != pdVar15);\n    pPVar17 = pPVar18 + iStack_188;\n    iVar13 = iStack_188;\n  }\n  pPVar33 = pPVar18 + iVar13 + 1;\n  pdVar16 = pdVar9;\n  pPVar29 = pPVar17;\n  pPVar34 = pPVar33;\n  if (bVar2) {\n    do {\n      pPVar34 = pPVar29;\n      pdVar28 = pdVar16 + 2;\n      sVar35 = *(size_t *)((int)pdVar16 + 4);\n      sVar49 = *(size_t *)(pdVar16 + 1);\n      sVar40 = *(size_t *)((int)pdVar16 + 0xc);\n      *(size_t *)&(pPVar34->point).x = *(size_t *)pdVar16;\n      *(size_t *)((int)&(pPVar34->point).x + 4) = sVar35;\n      *(size_t *)&(pPVar34->point).y = sVar49;\n      *(size_t *)((int)&(pPVar34->point).y + 4) = sVar40;\n      pdVar16 = pdVar28;\n      pPVar29 = (PrimitiveInfo *)&pPVar34->coordinates;\n    } while (pdVar28 != pdVar43);\n    PVar5 = *(PrimitiveType *)((int)pdVar9 + 0x24);\n    pPVar34->coordinates = *(size_t *)(pdVar9 + 4);\n    pPVar34->primitive = PVar5;\n    uVar38 = *(undefined4 *)((int)&pPVar36[1].point.x + 4);\n    uVar37 = *(undefined4 *)&pPVar36[1].point.y;\n    uVar39 = *(undefined4 *)((int)&pPVar36[1].point.y + 4);\n    *(undefined4 *)&(pPVar17->point).x = *(undefined4 *)&pPVar36[1].point.x;\n    *(undefined4 *)((int)&(pPVar17->point).x + 4) = uVar38;\n    *(undefined4 *)&(pPVar17->point).y = uVar37;\n    *(undefined4 *)((int)&(pPVar17->point).y + 4) = uVar39;\n    pPVar34 = pPVar18 + iVar13 + 2;\n    pdVar16 = pdVar9;\n    pPVar17 = pPVar33;\n    pPVar29 = pPVar33;\n  }\n  do {\n    pPVar36 = pPVar17;\n    pdVar28 = pdVar16;\n    pdVar16 = pdVar28 + 2;\n    sVar35 = *(size_t *)((int)pdVar28 + 4);\n    sVar49 = *(size_t *)(pdVar28 + 1);\n    sVar40 = *(size_t *)((int)pdVar28 + 0xc);\n    *(size_t *)&(pPVar36->point).x = *(size_t *)pdVar28;\n    *(size_t *)((int)&(pPVar36->point).x + 4) = sVar35;\n    *(size_t *)&(pPVar36->point).y = sVar49;\n    *(size_t *)((int)&(pPVar36->point).y + 4) = sVar40;\n    pPVar17 = (PrimitiveInfo *)&pPVar36->coordinates;\n  } while (pdVar16 != pdVar43);\n  PVar5 = *(PrimitiveType *)((int)pdVar28 + 0x14);\n  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n  pPVar36->coordinates = *(size_t *)pdVar16;\n  pPVar36->primitive = PVar5;\n  uVar39 = *(undefined4 *)((int)&(pPVar18->point).x + 4);\n  uVar38 = *(undefined4 *)&(pPVar18->point).y;\n  uVar37 = *(undefined4 *)((int)&(pPVar18->point).y + 4);\n  *(undefined4 *)&(pPVar29->point).x = *(undefined4 *)&(pPVar18->point).x;\n  *(undefined4 *)((int)&(pPVar29->point).x + 4) = uVar39;\n  *(undefined4 *)&(pPVar29->point).y = uVar38;\n  *(undefined4 *)((int)&(pPVar29->point).y + 4) = uVar37;\n  pPVar34->primitive = UndefinedPrimitive;\n  pPVar18->coordinates = iVar44 + 1;\n  (*pcVar48)(pdVar11);\n  (**(code **)(puVar47 + 0x3042b0))(pdVar12);\n  (**(code **)(puVar47 + 0x3042b0))(pdVar9);\nLAB_000a61cc:\n  MVar6 = DrawPolygonPrimitive(image_00,draw_info_00,pPVar18,exception);\n  MStack_1d0 = MStack_1d0 & MVar6;\n  (**(code **)(puVar47 + 0x3042b0))(pPVar18);\n  if (MStack_1d0 == MagickFalse) goto LAB_000a5774;\n  sVar40 = pPStack_e8->coordinates;\n  iVar44 = sVar40 * 0x28;\n  if ((draw_info->linecap == RoundCap) && (pPStack_e8->closed_subpath == MagickFalse)) {\n    MVar6 = DrawRoundLinecap(image_00,draw_info,pPStack_e8,exception);\n    MVar19 = DrawRoundLinecap(image_00,draw_info,pPStack_e8 + (sVar40 - 1),exception);\n    MStack_1d0 = MVar6 & MVar19 & MagickTrue;\n    iVar44 = pPStack_e8->coordinates * 0x28;\n  }\nLAB_000a6620:\n  pPStack_e8 = (PrimitiveInfo *)((int)&(pPStack_e8->point).x + iVar44);\n  if (pPStack_e8->primitive == UndefinedPrimitive) goto code_r0x000a6634;\n  goto LAB_000a4e98;\ncode_r0x000a6634:\n  pcVar48 = *(code **)(puVar47 + 0x3042d8);\n  goto LAB_000a5778;\n}\n\n" comment comment comment comment comment comment (function_definition "MagickBooleanType\nDrawRoundLinecap(Image *image,DrawInfo *draw_info,PrimitiveInfo *primitive_info,\n                ExceptionInfo *exception)\n\n{\n  bool bVar1;\n  bool bVar2;\n  int iVar3;\n  PixelInfo *pPVar4;\n  Image *image_00;\n  PrimitiveType PVar5;\n  MagickBooleanType MVar6;\n  DrawInfo *draw_info_00;\n  PixelInfo *pPVar7;\n  int iVar8;\n  double *pdVar9;\n  uint uVar10;\n  double *pdVar11;\n  double *pdVar12;\n  int iVar13;\n  LineJoin LVar14;\n  double *pdVar15;\n  double *pdVar16;\n  PrimitiveInfo *pPVar17;\n  PrimitiveInfo *pPVar18;\n  MagickBooleanType MVar19;\n  PixelInfo *pPVar20;\n  PixelInfo *pPVar21;\n  int iVar22;\n  LineCap LVar23;\n  size_t sVar24;\n  Image *pIVar25;\n  int iVar26;\n  int iVar27;\n  double *pdVar28;\n  PrimitiveInfo *pPVar29;\n  int iVar30;\n  PixelTrait PVar31;\n  ColorspaceType CVar32;\n  PrimitiveInfo *pPVar33;\n  PrimitiveInfo *pPVar34;\n  size_t sVar35;\n  PrimitiveInfo *pPVar36;\n  undefined4 uVar37;\n  undefined4 uVar38;\n  undefined4 uVar39;\n  size_t sVar40;\n  uint uVar41;\n  uint uVar42;\n  double *pdVar43;\n  int iVar44;\n  uint uVar45;\n  int iVar46;\n  undefined *puVar47;\n  code *pcVar48;\n  size_t sVar49;\n  double dVar50;\n  double dVar51;\n  undefined8 uVar52;\n  double dVar53;\n  double dVar54;\n  double dVar55;\n  undefined8 uVar56;\n  double dVar57;\n  double dVar58;\n  double dVar59;\n  double dVar60;\n  double dVar61;\n  double dVar62;\n  double dVar63;\n  double dVar64;\n  double dVar65;\n  double dVar66;\n  double dVar67;\n  double dVar68;\n  double dVar69;\n  double dVar70;\n  undefined8 uVar71;\n  double dVar72;\n  double dVar73;\n  double dVar74;\n  double dVar75;\n  double dStack_2b8;\n  double dStack_2b0;\n  double dStack_2a8;\n  double dStack_2a0;\n  double dStack_288;\n  double dStack_280;\n  double dStack_278;\n  double dStack_270;\n  double dStack_260;\n  double dStack_258;\n  double dStack_250;\n  double dStack_248;\n  double dStack_240;\n  double dStack_238;\n  uint uStack_22c;\n  MagickBooleanType MStack_1d0;\n  int iStack_188;\n  PrimitiveInfo *pPStack_e8;\n  PrimitiveInfo linecap [5];\n  \n  puVar47 = PTR___stack_chk_guard_003a9230;\n  pPStack_e8 = linecap;\n  image_00 = *(Image **)PTR___stack_chk_guard_003a9230;\n  pPVar18 = primitive_info;\n  pPVar17 = pPStack_e8;\n  pPVar36 = pPStack_e8;\n  do {\n    do {\n      pPVar34 = pPVar17;\n      pPVar29 = pPVar18;\n      pPVar18 = (PrimitiveInfo *)&pPVar29->coordinates;\n      uVar39 = *(undefined4 *)((int)&(pPVar29->point).x + 4);\n      uVar38 = *(undefined4 *)&(pPVar29->point).y;\n      uVar37 = *(undefined4 *)((int)&(pPVar29->point).y + 4);\n      *(undefined4 *)&(pPVar34->point).x = *(undefined4 *)&(pPVar29->point).x;\n      *(undefined4 *)((int)&(pPVar34->point).x + 4) = uVar39;\n      *(undefined4 *)&(pPVar34->point).y = uVar38;\n      *(undefined4 *)((int)&(pPVar34->point).y + 4) = uVar37;\n      pPVar17 = (PrimitiveInfo *)&pPVar34->coordinates;\n    } while (pPVar18 != (PrimitiveInfo *)&primitive_info->closed_subpath);\n    pPVar36 = pPVar36 + 1;\n    PVar5 = pPVar29->primitive;\n    pPVar34->coordinates = *(size_t *)pPVar18;\n    pPVar34->primitive = PVar5;\n    pPVar18 = primitive_info;\n    pPVar17 = pPVar36;\n  } while (pPVar36 != linecap + 4);\n  dVar50 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x47c8);\n  linecap[4].primitive = UndefinedPrimitive;\n  linecap[0].coordinates = 4;\n  linecap[1].point.x = linecap[1].point.x + dVar50;\n  linecap[2].point.x = linecap[2].point.x + dVar50;\n  linecap[2].point.y = linecap[2].point.y + dVar50;\n  linecap[3].point.y = linecap[3].point.y + dVar50;\n  MVar6 = DrawPolygonPrimitive(image,draw_info,pPStack_e8,exception);\n  if (image_00 == *(Image **)puVar47) {\n    return MVar6;\n  }\n  puVar47 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  if (image_00->debug != MagickFalse) {\n    (**(code **)(puVar47 + 0x3044d0))\n              (0x80,*(int *)(puVar47 + 0x303bd8) + 0x38b0,*(int *)(puVar47 + 0x303bd8) + 0x45dc,\n               0x168f,*(int *)(puVar47 + 0x303bd8) + 0x3dd8);\n  }\n  draw_info_00 = (DrawInfo *)(**(code **)(puVar47 + 0x3044ec))(0,draw_info);\n  pPVar4 = &draw_info_00->fill;\n  pPVar21 = &draw_info->stroke;\n  do {\n    pPVar20 = pPVar21;\n    pPVar7 = pPVar4;\n    pPVar21 = (PixelInfo *)&pPVar20->fuzz;\n    CVar32 = pPVar20->colorspace;\n    PVar31 = pPVar20->alpha_trait;\n    uVar37 = *(undefined4 *)&pPVar20->field_0xc;\n    pPVar7->storage_class = pPVar20->storage_class;\n    pPVar7->colorspace = CVar32;\n    pPVar7->alpha_trait = PVar31;\n    *(undefined4 *)&pPVar7->field_0xc = uVar37;\n    pPVar4 = (PixelInfo *)&pPVar7->fuzz;\n  } while (pPVar21 != (PixelInfo *)&(draw_info->stroke).index);\n  uVar37 = *(undefined4 *)((int)&pPVar20->fuzz + 4);\n  pIVar25 = draw_info_00->fill_pattern;\n  *(undefined4 *)&pPVar7->fuzz = *(undefined4 *)pPVar21;\n  *(undefined4 *)((int)&pPVar7->fuzz + 4) = uVar37;\n  if (pIVar25 != (Image *)0x0) {\n    pIVar25 = (Image *)(**(code **)(puVar47 + 0x30423c))();\n    draw_info_00->fill_pattern = pIVar25;\n  }\n  if (draw_info_00->stroke_pattern != (Image *)0x0) {\n    pIVar25 = (Image *)(**(code **)(puVar47 + 0x304b20))\n                                 (draw_info_00->stroke_pattern,0,0,1,exception);\n    draw_info_00->fill_pattern = pIVar25;\n  }\n  PVar5 = pPStack_e8->primitive;\n  *(undefined4 *)((int)&(draw_info_00->stroke).alpha + 4) = 0;\n  *(undefined4 *)&(draw_info_00->stroke).alpha = 0;\n  *(undefined4 *)((int)&draw_info_00->stroke_width + 4) = 0;\n  *(undefined4 *)&draw_info_00->stroke_width = 0;\n  draw_info_00->fill_rule = NonZeroRule;\n  if (PVar5 != UndefinedPrimitive) {\n    iVar8 = *(int *)(puVar47 + 0x303bd0);\n    iVar26 = *(int *)(puVar47 + 0x303bd8);\n    MStack_1d0 = MagickTrue;\n    dVar50 = *(double *)(iVar8 + 0x13f8);\n    iVar22 = *(int *)(puVar47 + 0x303bd0);\n    dVar51 = *(double *)(iVar22 + 0x1410);\n    uVar52 = *(undefined8 *)(iVar26 + 0x34a0);\nLAB_000a4e98:\n    sVar40 = pPStack_e8->coordinates;\n    if (sVar40 == 1) {\n      iVar44 = 0x28;\n      goto LAB_000a6620;\n    }\n    pdVar9 = (double *)(**(code **)(puVar47 + 0x3047fc))(sVar40 + 2,0x28);\n    if (pdVar9 != (double *)0x0) {\n      iVar44 = sVar40 * 0x28;\n      (**(code **)(puVar47 + 0x304648))(pdVar9,pPStack_e8,iVar44);\n      pdVar11 = pdVar9 + sVar40 * 5;\n      if ((ABS(pPStack_e8[sVar40 - 1].point.x - (pPStack_e8->point).x) < dVar50) &&\n         (ABS(pPStack_e8[sVar40 - 1].point.y - (pPStack_e8->point).y) < dVar50)) {\n        if (draw_info->linejoin - MiterJoin < 2) {\n          pPVar18 = pPStack_e8 + 1;\n          do {\n            pdVar12 = pdVar11;\n            pPVar17 = pPVar18;\n            pPVar18 = (PrimitiveInfo *)&pPVar17->coordinates;\n            sVar24 = *(size_t *)&(pPVar17->point).y;\n            sVar49 = *(size_t *)((int)&(pPVar17->point).y + 4);\n            sVar35 = *(size_t *)&(pPVar17->point).x;\n            *(size_t *)((int)pdVar12 + 4) = *(size_t *)((int)&(pPVar17->point).x + 4);\n            *(size_t *)(pdVar12 + 1) = sVar24;\n            *(size_t *)pdVar12 = sVar35;\n            *(size_t *)((int)pdVar12 + 0xc) = sVar49;\n            pdVar11 = pdVar12 + 2;\n          } while (pPVar18 != (PrimitiveInfo *)&pPStack_e8[1].closed_subpath);\n          iVar44 = iVar44 + 0x28;\n          sVar49 = *(size_t *)pPVar18;\n          pdVar11 = pdVar9 + sVar40 * 5 + 5;\n          *(PrimitiveType *)((int)pdVar12 + 0x14) = pPVar17->primitive;\n          *(size_t *)(pdVar12 + 2) = sVar49;\n          sVar40 = sVar40 + 1;\n        }\n        iStack_188 = 1;\n        bVar2 = true;\n        bVar1 = (int)sVar40 < 2;\n        *(size_t *)((int)pdVar11 + 0x14) = 0;\n        if (bVar1) goto LAB_000a6124;\nLAB_000a4fe8:\n        dVar72 = *(double *)(iVar8 + 0x13f8);\n        dStack_260 = pdVar9[5] - *pdVar9;\n        dStack_258 = pdVar9[6] - pdVar9[1];\n        if ((dVar72 <= ABS(dStack_260)) || (dVar72 <= ABS(dStack_258))) {\n          sVar49 = 1;\n        }\n        else {\n          sVar49 = 1;\n          pdVar11 = pdVar9 + 10;\n          do {\n            sVar49 = sVar49 + 1;\n            if (sVar49 == sVar40) {\n              LVar23 = draw_info->linecap;\n              sVar49 = sVar40;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar11 - *pdVar9;\n            dStack_258 = pdVar11[1] - pdVar9[1];\n          } while ((ABS(dStack_260) < dVar72) && (pdVar11 = pdVar11 + 5, ABS(dStack_258) < dVar72));\n        }\nLAB_000a5110:\n        uVar10 = sVar40 * 2;\n        pdVar11 = (double *)(**(code **)(puVar47 + 0x3047fc))(uVar10 + 0x618,0x10);\n        pdVar12 = (double *)(**(code **)(puVar47 + 0x3047fc))(uVar10 + 0x618,0x10);\n        if (pdVar11 == (double *)0x0) {\n          if (pdVar12 != (double *)0x0) {\n            (**(code **)(puVar47 + 0x3042b0))(pdVar12);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar47 + 0x3042b0))(pdVar9);\n          uVar37 = 0x1c93;\n          goto LAB_000a5724;\n        }\n        if (pdVar12 == (double *)0x0) {\n          (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n          goto LAB_000a6cbc;\n        }\n        if (ABS(dStack_260) < *(double *)(iVar8 + 0x13f8)) {\n          dVar72 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar63 = *(double *)(iVar13 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar63 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n        }\n        else if (ABS(dStack_258) < *(double *)(iVar8 + 0x13f8)) {\n          dVar63 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar72 = *(double *)(iVar13 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar63 = dStack_258 / dStack_260;\n          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a78) / dVar63;\n        }\nLAB_000a51b0:\n        dVar53 = (double)(**(code **)(puVar47 + 0x304288))(&draw_info->affine);\n        iVar13 = draw_info->miterlimit * draw_info->miterlimit;\n        dVar53 = dVar53 * draw_info->stroke_width *\n                 *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1400);\n        dVar57 = (double)iVar13;\n        if (iVar13 < 0) {\n          dVar57 = dVar57 + *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1418);\n        }\n        dVar57 = dVar57 * dVar53 * dVar53;\n        if (draw_info->linecap == SquareCap) {\n          iVar13 = *(int *)(puVar47 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar54 = 0.0;\n              if (sVar40 == 1) {\n                dVar64 = 0.0;\n                sVar35 = 1;\nLAB_000a6998:\n                pdVar16 = pdVar9 + (sVar35 - 1) * 5;\n              }\n              else {\n                pdVar16 = pdVar9 + 5;\n                dVar64 = 0.0;\n              }\n            }\n            else {\n              dVar75 = *(double *)(iVar8 + 0x13f8);\n              dVar64 = *pdVar9 - pdVar9[5];\n              dVar54 = pdVar9[1] - pdVar9[6];\n              if ((dVar75 <= ABS(dVar64)) || (dVar75 <= ABS(dVar54))) {\n                pdVar16 = pdVar9 + 5;\n              }\n              else {\n                sVar24 = 1;\n                pdVar28 = pdVar9 + 10;\n                do {\n                  pdVar16 = pdVar28;\n                  sVar24 = sVar24 + 1;\n                  sVar35 = sVar40;\n                  if (sVar24 == sVar40) goto LAB_000a6998;\n                  dVar64 = *pdVar9 - *pdVar16;\n                  dVar54 = pdVar9[1] - pdVar16[1];\n                } while ((ABS(dVar64) < dVar75) && (pdVar28 = pdVar16 + 5, ABS(dVar54) < dVar75));\n              }\n            }\n            dVar75 = (double)(**(code **)(puVar47 + 0x304a08))(dVar64,dVar54);\n            iVar13 = sVar40 - 2;\n            dVar61 = pdVar16[1];\n            pdVar43 = (double *)((int)pdVar9 + iVar44 + -0x28);\n            pdVar28 = pdVar9 + iVar13 * 5;\n            *pdVar9 = *pdVar16 + (dVar64 * (dVar53 + dVar75)) / dVar75;\n            pdVar9[1] = dVar61 + (dVar54 * (dVar53 + dVar75)) / dVar75;\n            if (-1 < iVar13) {\n              dVar75 = *(double *)(iVar8 + 0x13f8);\n              dVar64 = *pdVar43 - *pdVar28;\n              dVar54 = pdVar43[1] - pdVar28[1];\n              if (ABS(dVar64) < dVar75) {\n                pdVar16 = pdVar9 + (sVar40 - 3) * 5;\n                do {\n                  pdVar28 = pdVar16;\n                  if (dVar75 <= ABS(dVar54)) {\n                    pdVar28 = pdVar9 + iVar13 * 5;\n                    break;\n                  }\n                  iVar13 = iVar13 + -1;\n                  if (iVar13 == -1) break;\n                  dVar64 = *pdVar43 - *pdVar28;\n                  dVar54 = pdVar43[1] - pdVar28[1];\n                  pdVar16 = pdVar28 + -5;\n                } while (ABS(dVar64) < dVar75);\n              }\n            }\n            dVar75 = (double)(**(code **)(puVar47 + 0x304a08))(dVar64,dVar54);\n            dVar61 = pdVar28[1];\n            *pdVar43 = *pdVar28 + (dVar64 * (dVar53 + dVar75)) / dVar75;\n            pdVar43[1] = dVar61 + (dVar54 * (dVar53 + dVar75)) / dVar75;\n            goto LAB_000a5220;\n          }\n        }\n        else {\nLAB_000a5220:\n          iVar13 = *(int *)(puVar47 + 0x303bd0);\n        }\n        dVar54 = dVar53 * dVar53;\n        dVar64 = dVar54 / (dVar72 * dVar72 + *(double *)(iVar13 + 0x1438));\n        dVar75 = SQRT(dVar64);\n        if (dVar64 < 0.0) {\n          (**(code **)(puVar47 + 0x304770))();\n        }\n        dVar72 = dVar72 * dVar75;\n        pdVar16 = pdVar9 + sVar49 * 5;\n        dVar69 = *pdVar16;\n        dVar73 = pdVar16[1];\n        dVar68 = dVar72 + pdVar9[1];\n        dVar66 = pdVar9[1] - dVar72;\n        dVar64 = dVar75 + *pdVar9;\n        dStack_238 = dVar73 - dVar72;\n        dStack_240 = dVar69 - dVar75;\n        dVar67 = *pdVar9 - dVar75;\n        dVar62 = dVar67;\n        dVar61 = dVar68;\n        dStack_250 = dVar75 + dVar69;\n        dStack_248 = dVar72 + dVar73;\n        if (0.0 < dVar75 * dStack_258 - dVar72 * dStack_260) {\n          dVar62 = dVar64;\n          dVar61 = dVar66;\n          dVar64 = dVar67;\n          dVar66 = dVar68;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar75 + dVar69;\n          dStack_238 = dVar72 + dVar73;\n        }\n        sVar35 = sVar49 + 1;\n        *pdVar12 = dVar62;\n        pdVar12[1] = dVar66;\n        *pdVar11 = dVar64;\n        pdVar11[1] = dVar61;\n        if ((int)sVar35 < (int)sVar40) {\n          iVar27 = *(int *)(puVar47 + 0x303bd8);\n          iVar44 = 1;\n          iVar46 = 1;\n          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a78);\n          dVar75 = *(double *)(*(int *)(puVar47 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar10;\n          do {\n            dVar55 = pdVar16[6];\n            dVar58 = pdVar16[5];\n            dVar59 = dVar55 - dVar73;\n            dVar65 = dVar58 - dVar69;\n            dVar60 = dVar58 - dVar69;\n            dVar67 = dStack_238;\n            dVar68 = dStack_240;\n            dVar70 = dStack_248;\n            dVar74 = dStack_250;\n            if (*(double *)(iVar27 + -0x2e38) <=\n                dVar65 * dVar65 + (dVar55 - dVar73) * (dVar55 - dVar73)) {\n              if (ABS(dVar65) < *(double *)(iVar8 + 0x13f8)) {\n                dVar67 = 0.0;\n                dVar68 = dVar54;\n                if (0.0 <= dVar65) {\n                  if (0.0 <= dVar55 - dVar73) goto LAB_000a53e0;\n                }\n                else if (dVar55 - dVar73 < 0.0) {\nLAB_000a53e0:\n                  dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar59) < *(double *)(iVar8 + 0x13f8)) {\n                dVar65 = 0.0;\n                dVar68 = dVar54 / dVar75;\n                if (0.0 <= dVar55 - dVar73) {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (dVar58 - dVar69 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (0.0 <= dVar58 - dVar69) {\nLAB_000a5880:\n                    dVar67 = *(double *)(iVar30 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar67 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar65 = (dVar55 - dVar73) / (dVar58 - dVar69);\n                dVar67 = dVar72 / dVar65;\n                dVar68 = dVar54 / (dVar67 * dVar67 + *(double *)(iVar13 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar28 = pdVar9 + sVar49 * 5;\n              dVar70 = SQRT(dVar68);\n              if (dVar68 < 0.0) {\n                (**(code **)(puVar47 + 0x304770))();\n                dVar69 = *pdVar28;\n                dVar73 = pdVar28[1];\n                dVar58 = pdVar16[5];\n                dVar55 = pdVar16[6];\n              }\n              dVar67 = dVar67 * dVar70;\n              dStack_2a8 = dVar58 - dVar70;\n              dStack_2a0 = dVar55 - dVar67;\n              dStack_278 = dVar69 - dVar70;\n              dStack_270 = dVar73 - dVar67;\n              dStack_2b8 = dVar70 + dVar58;\n              dStack_2b0 = dVar67 + dVar55;\n              dStack_288 = dVar70 + dVar69;\n              dStack_280 = dVar67 + dVar73;\n              if (0.0 < dVar59 * dVar70 - dVar60 * dVar67) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar70 + dVar58;\n                dStack_2a0 = dVar67 + dVar55;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar70 + dVar69;\n                dStack_270 = dVar67 + dVar73;\n              }\n              dVar67 = dVar63 - dVar65;\n              dVar69 = dStack_250;\n              dVar73 = dStack_248;\n              dVar55 = dStack_238;\n              dVar58 = dStack_240;\n              if (*(double *)(iVar8 + 0x13f8) <= ABS(dVar67)) {\n                dVar69 = (((dVar64 * dVar63 - dVar61) - dVar65 * dStack_2b8) + dStack_2b0) / dVar67;\n                dVar58 = (((dVar63 * dVar62 - dVar66) - dVar65 * dStack_2a8) + dStack_2a0) / dVar67;\n                dVar73 = (dVar69 - dVar64) * dVar63 + dVar61;\n                dVar55 = (dVar58 - dVar62) * dVar63 + dVar66;\n              }\n              if ((int)uStack_22c <= iVar46 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar11 = (double *)\n                            (**(code **)(puVar47 + 0x304710))(pdVar11,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                }\n              }\n              if (iVar44 + 0x618 < (int)uVar10) {\n                if (pdVar11 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a5710:\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar10) {\n                  pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  if (pdVar11 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar12 != (double *)0x0) goto LAB_000a5700;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar48)(pdVar9);\n                  uVar37 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar12 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                uVar10 = uVar10 + 0x618;\n                if (pdVar11 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar12 == (double *)0x0) {\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  goto LAB_000a5710;\n                }\n              }\n              LVar14 = draw_info->linejoin;\n              dVar62 = dStack_278;\n              dVar61 = dStack_280;\n              dVar64 = dStack_288;\n              dVar66 = dStack_270;\n              sVar49 = sVar35;\n              dVar63 = dVar65;\n              if (dVar60 * dStack_258 - dVar59 * dStack_260 <= 0.0) {\n                if (LVar14 != RoundJoin) {\n                  if (LVar14 == BevelJoin) {\n                    pdVar28 = pdVar11 + iVar46 * 2;\n                    pdVar12[iVar44 * 2] = dStack_240;\n                    (pdVar12 + iVar44 * 2)[1] = dStack_238;\n                    pdVar12[iVar44 * 2 + 2] = dStack_278;\n                    (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if (dVar57 < (dVar58 - dVar69) * (dVar58 - dVar69) +\n                                   (dVar55 - dVar73) * (dVar55 - dVar73)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar44 = iVar44 + 1;\n                      iVar46 = iVar46 + 1;\n                      *pdVar43 = dVar58;\n                      pdVar43[1] = dVar55;\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar30 = iVar46 + 1;\n                pdVar43 = pdVar11 + iVar46 * 2;\n                if ((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57) {\n                  *pdVar43 = dVar69;\n                  pdVar43[1] = dVar73;\n                }\n                else {\n                  iVar30 = iVar46 + 2;\n                  *pdVar43 = dStack_250;\n                  pdVar43[1] = dStack_248;\n                  pdVar11[iVar46 * 2 + 2] = dStack_288;\n                  (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                }\n                dVar69 = *pdVar28;\n                dVar68 = pdVar28[1];\n                dVar63 = dVar68;\n                dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_238 - dVar68,dStack_240 - dVar69);\n                dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_270 - dVar63,dStack_278 - dVar69);\n                if (dVar63 < dVar67) {\n                  dVar63 = dVar63 + *(double *)(iVar26 + 0x34a0);\n                }\n                dVar63 = dVar63 - dVar67;\n                dVar73 = *(double *)(iVar13 + 0x1438) / dVar53;\n                dVar70 = SQRT(dVar73);\n                if (dVar73 < 0.0) {\n                  (**(code **)(puVar47 + 0x304770))();\n                }\n                dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar63 / (dVar70 + dVar70));\n                dVar70 = *(double *)(iVar22 + 0x1410);\n                if (dVar73 < dVar70) {\n                  uVar42 = (uint)dVar73;\n                }\n                else {\n                  uVar42 = (int)(dVar73 - dVar70) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar30 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar46 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar11,iVar46,0x10);\n                  }\n                  else {\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  }\n                }\n                if (uVar42 + 0x618 < 0x4000001) {\n                  if ((int)uVar10 <= (int)(iVar44 + 0x618 + uVar42)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uVar10 < uVar42 + 0x618) goto LAB_000a67d4;\n                    iVar46 = uVar42 + uVar10;\n                    uVar10 = iVar46 + 0x618;\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,iVar46 + 0xc30,0x10);\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar11 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a6d2c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar12 = (double *)(*pcVar48)(pdVar12);\nLAB_000a64c4:\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a6884;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar28 = pdVar12 + iVar44 * 2;\n                *pdVar28 = dStack_240;\n                pdVar28[1] = dStack_238;\n                if (1 < (int)uVar42) {\n                  uVar71 = *(undefined8 *)(iVar26 + 0x34a0);\n                  uVar41 = 1;\n                  do {\n                    uVar45 = uVar41 + 1;\n                    dVar70 = ((double)(int)uVar41 * dVar63) / (double)(int)uVar42 + dVar67;\n                    uVar56 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar56);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar69;\n                    uVar56 = (*pcVar48)(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar56);\n                    pdVar28[3] = dVar53 * dVar73 + dVar68;\n                    uVar41 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar42);\n                }\n                *pdVar12 = dStack_278;\n                pdVar12[1] = dStack_270;\n                dStack_258 = dVar59;\n                dStack_260 = dVar60;\n                dVar67 = dStack_2a0;\n                dVar68 = dStack_2a8;\n                dVar70 = dStack_2b0;\n                dVar74 = dStack_2b8;\n                iVar44 = 1;\n                iVar46 = iVar30;\n                dVar63 = dVar65;\n              }\n              else {\n                if (LVar14 != RoundJoin) {\n                  if (LVar14 == BevelJoin) {\n                    iVar30 = iVar46 * 2;\n                    iVar3 = iVar46 * 2;\n                    iVar46 = iVar46 + 2;\n                    pdVar11[iVar30] = dStack_250;\n                    (pdVar11 + iVar30)[1] = dStack_248;\n                    pdVar28 = pdVar12 + iVar44 * 2;\n                    pdVar11[iVar3 + 2] = dStack_288;\n                    (pdVar11 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar58;\n                      pdVar28[1] = dVar55;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_240;\n                      pdVar28[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                          (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar43 = dStack_240;\n                      pdVar43[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar30 = iVar44 + 1;\n                pdVar43 = pdVar12 + iVar44 * 2;\n                if ((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57) {\n                  *pdVar43 = dVar58;\n                  pdVar43[1] = dVar55;\n                }\n                else {\n                  iVar30 = iVar44 + 2;\n                  *pdVar43 = dStack_240;\n                  pdVar43[1] = dStack_238;\n                  pdVar12[iVar44 * 2 + 2] = dStack_278;\n                  (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                }\n                dVar68 = *pdVar28;\n                dVar69 = pdVar28[1];\n                dVar63 = dVar68;\n                dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_248 - dVar69,dStack_250 - dVar68);\n                dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_280 - dVar69,dStack_288 - dVar63);\n                if (dVar67 < dVar63) {\n                  dVar67 = dVar67 + *(double *)(iVar26 + 0x34a0);\n                }\n                dVar73 = dVar67 - dVar63;\n                dVar70 = *(double *)(iVar13 + 0x1438) / dVar53;\n                dVar74 = SQRT(dVar70);\n                if (dVar70 < 0.0) {\n                  (**(code **)(puVar47 + 0x304770))();\n                }\n                dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar73 / (dVar74 + dVar74));\n                if (dVar73 < dVar51) {\n                  uVar41 = (uint)dVar73;\n                  uVar42 = uVar41 + 0x618;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                  if (uVar42 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar11 = (double *)(*pcVar48)(pdVar11);\n                }\n                else {\n                  uVar41 = (int)(dVar73 - dVar51) | 0x80000000;\n                  uVar42 = uVar41 + 0x618;\n                  if (0x4000000 < uVar42) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar46 + 0x618 + uVar41)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uStack_22c < uVar42) goto LAB_000a66a4;\n                    iVar44 = uStack_22c + uVar41;\n                    uStack_22c = iVar44 + 0x618;\n                    pdVar11 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar11,iVar44 + 0xc30,0x10);\n                  }\n                }\n                if (iVar30 + 0x618 < (int)uVar10) {\n                  if (pdVar11 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a665c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar10 < 0xfffff9e8) {\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                    uVar10 = uVar10 + 0x618;\n                  }\n                  else {\n                    pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  }\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a664c;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar28 = pdVar11 + iVar46 * 2;\n                *pdVar28 = dStack_250;\n                pdVar28[1] = dStack_248;\n                if (1 < (int)uVar41) {\n                  dVar63 = dVar63 - dVar67;\n                  uVar42 = 1;\n                  do {\n                    uVar45 = uVar42 + 1;\n                    dVar70 = ((double)(int)uVar42 * dVar63) / (double)(int)uVar41 + dVar67;\n                    uVar71 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar71);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar68;\n                    uVar71 = (*pcVar48)(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar71);\n                    pdVar28[3] = dVar53 * dVar73 + dVar69;\n                    uVar42 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar41);\n                }\n                *pdVar11 = dStack_288;\n                pdVar11[1] = dStack_280;\n                dStack_258 = dVar59;\n                dStack_260 = dVar60;\n                dVar67 = dStack_2a0;\n                dVar68 = dStack_2a8;\n                dVar70 = dStack_2b0;\n                dVar74 = dStack_2b8;\n                iVar44 = iVar30;\n                iVar46 = 1;\n                dVar63 = dVar65;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar74;\n            dStack_248 = dVar70;\n            dStack_240 = dVar68;\n            dStack_238 = dVar67;\n            if (sVar35 + 1 == sVar40) goto LAB_000a5a58;\n            pdVar16 = pdVar16 + 5;\n            sVar35 = sVar35 + 1;\n            dVar69 = pdVar9[sVar49 * 5];\n            dVar73 = (pdVar9 + sVar49 * 5)[1];\n          } while( true );\n        }\n        iVar44 = 4;\n        iVar27 = 0x10;\n        iVar46 = 0x10;\n        iVar13 = 2;\n        goto LAB_000a5a70;\n      }\n      bVar1 = (int)sVar40 < 2;\n      iStack_188 = 0;\n      bVar2 = false;\n      *(size_t *)((int)pdVar11 + 0x14) = 0;\n      if (!bVar1) goto LAB_000a4fe8;\nLAB_000a6124:\n      if (sVar40 != 1) {\n        sVar49 = 1;\n        dStack_258 = 0.0;\n        dStack_260 = 0.0;\n        goto LAB_000a5110;\n      }\n      sVar49 = 1;\n      dStack_258 = 0.0;\n      LVar23 = draw_info->linecap;\n      dStack_260 = 0.0;\njoined_r0x000a50f8:\n      if (LVar23 == RoundCap) {\n        pcVar48 = *(code **)(puVar47 + 0x304644);\n        if (!bVar2) {\n          sVar49 = sVar49 - 1;\n          goto LAB_000a5110;\n        }\n      }\n      else {\n        pcVar48 = *(code **)(puVar47 + 0x304644);\n      }\n      pPVar18 = (PrimitiveInfo *)(*pcVar48)(0x28);\n      pdVar11 = pdVar9;\n      pPVar17 = pPVar18;\n      do {\n        pPVar36 = pPVar17;\n        pdVar12 = pdVar11;\n        pdVar11 = pdVar12 + 2;\n        sVar35 = *(size_t *)((int)pdVar12 + 4);\n        sVar49 = *(size_t *)(pdVar12 + 1);\n        sVar40 = *(size_t *)((int)pdVar12 + 0xc);\n        *(size_t *)&(pPVar36->point).x = *(size_t *)pdVar12;\n        *(size_t *)((int)&(pPVar36->point).x + 4) = sVar35;\n        *(size_t *)&(pPVar36->point).y = sVar49;\n        *(size_t *)((int)&(pPVar36->point).y + 4) = sVar40;\n        pPVar17 = (PrimitiveInfo *)&pPVar36->coordinates;\n      } while (pdVar11 != pdVar9 + 4);\n      PVar5 = *(PrimitiveType *)((int)pdVar12 + 0x14);\n      pcVar48 = *(code **)(puVar47 + 0x3042b0);\n      pPVar36->coordinates = *(size_t *)pdVar11;\n      pPVar36->primitive = PVar5;\n      pPVar18->coordinates = 0;\n      (*pcVar48)(pdVar9);\n      goto LAB_000a61cc;\n    }\n    uVar37 = 0x1c57;\nLAB_000a5724:\n    (**(code **)(puVar47 + 0x304210))\n              (exception,*(int *)(puVar47 + 0x303bd8) + 0x38b0,*(int *)(puVar47 + 0x303bd8) + 0x45c8\n               ,uVar37,400,*(int *)(puVar47 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar47 + 0x303bd0) + 0x3e28,*(int *)(puVar47 + 0x303bd4) + -0x3688);\n    MStack_1d0 = MagickFalse;\n    goto LAB_000a5774;\n  }\n  MStack_1d0 = MagickTrue;\nLAB_000a5774:\n  pcVar48 = *(code **)(puVar47 + 0x3042d8);\nLAB_000a5778:\n  (*pcVar48)(draw_info_00);\n  if (image_00->debug != MagickFalse) {\n    (**(code **)(puVar47 + 0x3044d0))\n              (0x80,*(int *)(puVar47 + 0x303bd8) + 0x38b0,*(int *)(puVar47 + 0x303bd8) + 0x45dc,\n               0x16b4,*(int *)(puVar47 + 0x303bd8) + 0x3df8);\n  }\n  return MStack_1d0;\nLAB_000a5a58:\n  iVar13 = iVar46 + 1;\n  iVar46 = iVar46 << 4;\n  iVar27 = iVar44 << 4;\n  iVar44 = iVar44 + 1 + iVar13;\nLAB_000a5a70:\n  pcVar48 = *(code **)(puVar47 + 0x3047fc);\n  iVar44 = iStack_188 * 2 + iVar44;\n  *(double *)((int)pdVar11 + iVar46) = dStack_250;\n  ((double *)((int)pdVar11 + iVar46))[1] = dStack_248;\n  *(double *)((int)pdVar12 + iVar27) = dStack_240;\n  ((double *)((int)pdVar12 + iVar27))[1] = dStack_238;\n  pPVar18 = (PrimitiveInfo *)(*pcVar48)(iVar44 + 2,0x28);\n  if (pPVar18 == (PrimitiveInfo *)0x0) {\n    (**(code **)(puVar47 + 0x304210))\n              (exception,*(int *)(puVar47 + 0x303bd8) + 0x38b0,*(int *)(puVar47 + 0x303bd8) + 0x45c8\n               ,0x1dbc,400,*(int *)(puVar47 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar47 + 0x303bd0) + 0x3e28,*(int *)(puVar47 + 0x303bd4) + -0x3688);\n    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\n    (**(code **)(puVar47 + 0x3042b0))(pdVar9);\n    MStack_1d0 = MagickFalse;\n    goto LAB_000a5774;\n  }\n  pdVar43 = pdVar9 + 4;\n  pdVar16 = pdVar9;\n  pPVar17 = pPVar18;\n  pdVar28 = pdVar11;\n  pPVar36 = pPVar18;\n  do {\n    do {\n      pPVar29 = pPVar17;\n      pdVar15 = pdVar16 + 2;\n      sVar35 = *(size_t *)((int)pdVar16 + 4);\n      sVar49 = *(size_t *)(pdVar16 + 1);\n      sVar40 = *(size_t *)((int)pdVar16 + 0xc);\n      *(size_t *)&(pPVar29->point).x = *(size_t *)pdVar16;\n      *(size_t *)((int)&(pPVar29->point).x + 4) = sVar35;\n      *(size_t *)&(pPVar29->point).y = sVar49;\n      *(size_t *)((int)&(pPVar29->point).y + 4) = sVar40;\n      pdVar16 = pdVar15;\n      pPVar17 = (PrimitiveInfo *)&pPVar29->coordinates;\n    } while (pdVar15 != pdVar43);\n    pdVar15 = pdVar28 + 2;\n    PVar5 = *(PrimitiveType *)((int)pdVar9 + 0x24);\n    pPVar29->coordinates = *(size_t *)pdVar43;\n    pPVar29->primitive = PVar5;\n    uVar39 = *(undefined4 *)((int)pdVar28 + 4);\n    uVar38 = *(undefined4 *)(pdVar28 + 1);\n    uVar37 = *(undefined4 *)((int)pdVar28 + 0xc);\n    *(undefined4 *)&(pPVar36->point).x = *(undefined4 *)pdVar28;\n    *(undefined4 *)((int)&(pPVar36->point).x + 4) = uVar39;\n    *(undefined4 *)&(pPVar36->point).y = uVar38;\n    *(undefined4 *)((int)&(pPVar36->point).y + 4) = uVar37;\n    pdVar16 = pdVar9;\n    pPVar17 = pPVar36 + 1;\n    pdVar28 = pdVar15;\n    pPVar36 = pPVar36 + 1;\n  } while (pdVar11 + iVar13 * 2 != pdVar15);\n  pPVar36 = pPVar18 + iVar13;\n  pPVar17 = pPVar36;\n  if (bVar2) {\n    do {\n      pPVar29 = pPVar17;\n      pdVar28 = pdVar16 + 2;\n      sVar35 = *(size_t *)((int)pdVar16 + 4);\n      sVar49 = *(size_t *)(pdVar16 + 1);\n      sVar40 = *(size_t *)((int)pdVar16 + 0xc);\n      *(size_t *)&(pPVar29->point).x = *(size_t *)pdVar16;\n      *(size_t *)((int)&(pPVar29->point).x + 4) = sVar35;\n      *(size_t *)&(pPVar29->point).y = sVar49;\n      *(size_t *)((int)&(pPVar29->point).y + 4) = sVar40;\n      pdVar16 = pdVar28;\n      pPVar17 = (PrimitiveInfo *)&pPVar29->coordinates;\n    } while (pdVar28 != pdVar43);\n    iVar13 = iVar13 + 1;\n    PVar5 = *(PrimitiveType *)((int)pdVar9 + 0x24);\n    pPVar29->coordinates = *(size_t *)(pdVar9 + 4);\n    pPVar29->primitive = PVar5;\n    uVar39 = *(undefined4 *)((int)&(pPVar18->point).x + 4);\n    uVar38 = *(undefined4 *)&(pPVar18->point).y;\n    uVar37 = *(undefined4 *)((int)&(pPVar18->point).y + 4);\n    pPVar17 = pPVar18 + iVar13;\n    *(undefined4 *)&(pPVar36->point).x = *(undefined4 *)&(pPVar18->point).x;\n    *(undefined4 *)((int)&(pPVar36->point).x + 4) = uVar39;\n    *(undefined4 *)&(pPVar36->point).y = uVar38;\n    *(undefined4 *)((int)&(pPVar36->point).y + 4) = uVar37;\n  }\n  iStack_188 = iVar44 - iStack_188;\n  if (iVar13 < iStack_188) {\n    pdVar16 = pdVar9;\n    pPVar17 = pPVar18 + iVar13;\n    pdVar28 = pdVar12 + ((iStack_188 + 0xfffffff) - iVar13) * 2;\n    pPVar29 = pPVar18 + iVar13;\n    do {\n      do {\n        pPVar34 = pPVar17;\n        pdVar15 = pdVar16 + 2;\n        sVar35 = *(size_t *)((int)pdVar16 + 4);\n        sVar49 = *(size_t *)(pdVar16 + 1);\n        sVar40 = *(size_t *)((int)pdVar16 + 0xc);\n        *(size_t *)&(pPVar34->point).x = *(size_t *)pdVar16;\n        *(size_t *)((int)&(pPVar34->point).x + 4) = sVar35;\n        *(size_t *)&(pPVar34->point).y = sVar49;\n        *(size_t *)((int)&(pPVar34->point).y + 4) = sVar40;\n        pdVar16 = pdVar15;\n        pPVar17 = (PrimitiveInfo *)&pPVar34->coordinates;\n      } while (pdVar15 != pdVar43);\n      pdVar15 = pdVar28 + -2;\n      PVar5 = *(PrimitiveType *)((int)pdVar9 + 0x24);\n      pPVar34->coordinates = *(size_t *)pdVar43;\n      pPVar34->primitive = PVar5;\n      uVar39 = *(undefined4 *)((int)pdVar28 + 4);\n      uVar38 = *(undefined4 *)(pdVar28 + 1);\n      uVar37 = *(undefined4 *)((int)pdVar28 + 0xc);\n      *(undefined4 *)&(pPVar29->point).x = *(undefined4 *)pdVar28;\n      *(undefined4 *)((int)&(pPVar29->point).x + 4) = uVar39;\n      *(undefined4 *)&(pPVar29->point).y = uVar38;\n      *(undefined4 *)((int)&(pPVar29->point).y + 4) = uVar37;\n      pdVar16 = pdVar9;\n      pPVar17 = pPVar29 + 1;\n      pdVar28 = pdVar15;\n      pPVar29 = pPVar29 + 1;\n    } while (pdVar12 + -2 != pdVar15);\n    pPVar17 = pPVar18 + iStack_188;\n    iVar13 = iStack_188;\n  }\n  pPVar33 = pPVar18 + iVar13 + 1;\n  pdVar16 = pdVar9;\n  pPVar29 = pPVar17;\n  pPVar34 = pPVar33;\n  if (bVar2) {\n    do {\n      pPVar34 = pPVar29;\n      pdVar28 = pdVar16 + 2;\n      sVar35 = *(size_t *)((int)pdVar16 + 4);\n      sVar49 = *(size_t *)(pdVar16 + 1);\n      sVar40 = *(size_t *)((int)pdVar16 + 0xc);\n      *(size_t *)&(pPVar34->point).x = *(size_t *)pdVar16;\n      *(size_t *)((int)&(pPVar34->point).x + 4) = sVar35;\n      *(size_t *)&(pPVar34->point).y = sVar49;\n      *(size_t *)((int)&(pPVar34->point).y + 4) = sVar40;\n      pdVar16 = pdVar28;\n      pPVar29 = (PrimitiveInfo *)&pPVar34->coordinates;\n    } while (pdVar28 != pdVar43);\n    PVar5 = *(PrimitiveType *)((int)pdVar9 + 0x24);\n    pPVar34->coordinates = *(size_t *)(pdVar9 + 4);\n    pPVar34->primitive = PVar5;\n    uVar38 = *(undefined4 *)((int)&pPVar36[1].point.x + 4);\n    uVar37 = *(undefined4 *)&pPVar36[1].point.y;\n    uVar39 = *(undefined4 *)((int)&pPVar36[1].point.y + 4);\n    *(undefined4 *)&(pPVar17->point).x = *(undefined4 *)&pPVar36[1].point.x;\n    *(undefined4 *)((int)&(pPVar17->point).x + 4) = uVar38;\n    *(undefined4 *)&(pPVar17->point).y = uVar37;\n    *(undefined4 *)((int)&(pPVar17->point).y + 4) = uVar39;\n    pPVar34 = pPVar18 + iVar13 + 2;\n    pdVar16 = pdVar9;\n    pPVar17 = pPVar33;\n    pPVar29 = pPVar33;\n  }\n  do {\n    pPVar36 = pPVar17;\n    pdVar28 = pdVar16;\n    pdVar16 = pdVar28 + 2;\n    sVar35 = *(size_t *)((int)pdVar28 + 4);\n    sVar49 = *(size_t *)(pdVar28 + 1);\n    sVar40 = *(size_t *)((int)pdVar28 + 0xc);\n    *(size_t *)&(pPVar36->point).x = *(size_t *)pdVar28;\n    *(size_t *)((int)&(pPVar36->point).x + 4) = sVar35;\n    *(size_t *)&(pPVar36->point).y = sVar49;\n    *(size_t *)((int)&(pPVar36->point).y + 4) = sVar40;\n    pPVar17 = (PrimitiveInfo *)&pPVar36->coordinates;\n  } while (pdVar16 != pdVar43);\n  PVar5 = *(PrimitiveType *)((int)pdVar28 + 0x14);\n  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n  pPVar36->coordinates = *(size_t *)pdVar16;\n  pPVar36->primitive = PVar5;\n  uVar39 = *(undefined4 *)((int)&(pPVar18->point).x + 4);\n  uVar38 = *(undefined4 *)&(pPVar18->point).y;\n  uVar37 = *(undefined4 *)((int)&(pPVar18->point).y + 4);\n  *(undefined4 *)&(pPVar29->point).x = *(undefined4 *)&(pPVar18->point).x;\n  *(undefined4 *)((int)&(pPVar29->point).x + 4) = uVar39;\n  *(undefined4 *)&(pPVar29->point).y = uVar38;\n  *(undefined4 *)((int)&(pPVar29->point).y + 4) = uVar37;\n  pPVar34->primitive = UndefinedPrimitive;\n  pPVar18->coordinates = iVar44 + 1;\n  (*pcVar48)(pdVar11);\n  (**(code **)(puVar47 + 0x3042b0))(pdVar12);\n  (**(code **)(puVar47 + 0x3042b0))(pdVar9);\nLAB_000a61cc:\n  MVar6 = DrawPolygonPrimitive(image_00,draw_info_00,pPVar18,exception);\n  MStack_1d0 = MStack_1d0 & MVar6;\n  (**(code **)(puVar47 + 0x3042b0))(pPVar18);\n  if (MStack_1d0 == MagickFalse) goto LAB_000a5774;\n  sVar40 = pPStack_e8->coordinates;\n  iVar44 = sVar40 * 0x28;\n  if ((draw_info->linecap == RoundCap) && (pPStack_e8->closed_subpath == MagickFalse)) {\n    MVar6 = DrawRoundLinecap(image_00,draw_info,pPStack_e8,exception);\n    MVar19 = DrawRoundLinecap(image_00,draw_info,pPStack_e8 + (sVar40 - 1),exception);\n    MStack_1d0 = MVar6 & MVar19 & MagickTrue;\n    iVar44 = pPStack_e8->coordinates * 0x28;\n  }\nLAB_000a6620:\n  pPStack_e8 = (PrimitiveInfo *)((int)&(pPStack_e8->point).x + iVar44);\n  if (pPStack_e8->primitive == UndefinedPrimitive) goto code_r0x000a6634;\n  goto LAB_000a4e98;\ncode_r0x000a6634:\n  pcVar48 = *(code **)(puVar47 + 0x3042d8);\n  goto LAB_000a5778;\n}" type_identifier (function_declarator "DrawRoundLinecap(Image *image,DrawInfo *draw_info,PrimitiveInfo *primitive_info,\n                ExceptionInfo *exception)" identifier (parameter_list "(Image *image,DrawInfo *draw_info,PrimitiveInfo *primitive_info,\n                ExceptionInfo *exception)" ( (parameter_declaration "Image *image" type_identifier (pointer_declarator "*image" * identifier)) , (parameter_declaration "DrawInfo *draw_info" type_identifier (pointer_declarator "*draw_info" * identifier)) , (parameter_declaration "PrimitiveInfo *primitive_info" type_identifier (pointer_declarator "*primitive_info" * identifier)) , (parameter_declaration "ExceptionInfo *exception" type_identifier (pointer_declarator "*exception" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  bool bVar2;\n  int iVar3;\n  PixelInfo *pPVar4;\n  Image *image_00;\n  PrimitiveType PVar5;\n  MagickBooleanType MVar6;\n  DrawInfo *draw_info_00;\n  PixelInfo *pPVar7;\n  int iVar8;\n  double *pdVar9;\n  uint uVar10;\n  double *pdVar11;\n  double *pdVar12;\n  int iVar13;\n  LineJoin LVar14;\n  double *pdVar15;\n  double *pdVar16;\n  PrimitiveInfo *pPVar17;\n  PrimitiveInfo *pPVar18;\n  MagickBooleanType MVar19;\n  PixelInfo *pPVar20;\n  PixelInfo *pPVar21;\n  int iVar22;\n  LineCap LVar23;\n  size_t sVar24;\n  Image *pIVar25;\n  int iVar26;\n  int iVar27;\n  double *pdVar28;\n  PrimitiveInfo *pPVar29;\n  int iVar30;\n  PixelTrait PVar31;\n  ColorspaceType CVar32;\n  PrimitiveInfo *pPVar33;\n  PrimitiveInfo *pPVar34;\n  size_t sVar35;\n  PrimitiveInfo *pPVar36;\n  undefined4 uVar37;\n  undefined4 uVar38;\n  undefined4 uVar39;\n  size_t sVar40;\n  uint uVar41;\n  uint uVar42;\n  double *pdVar43;\n  int iVar44;\n  uint uVar45;\n  int iVar46;\n  undefined *puVar47;\n  code *pcVar48;\n  size_t sVar49;\n  double dVar50;\n  double dVar51;\n  undefined8 uVar52;\n  double dVar53;\n  double dVar54;\n  double dVar55;\n  undefined8 uVar56;\n  double dVar57;\n  double dVar58;\n  double dVar59;\n  double dVar60;\n  double dVar61;\n  double dVar62;\n  double dVar63;\n  double dVar64;\n  double dVar65;\n  double dVar66;\n  double dVar67;\n  double dVar68;\n  double dVar69;\n  double dVar70;\n  undefined8 uVar71;\n  double dVar72;\n  double dVar73;\n  double dVar74;\n  double dVar75;\n  double dStack_2b8;\n  double dStack_2b0;\n  double dStack_2a8;\n  double dStack_2a0;\n  double dStack_288;\n  double dStack_280;\n  double dStack_278;\n  double dStack_270;\n  double dStack_260;\n  double dStack_258;\n  double dStack_250;\n  double dStack_248;\n  double dStack_240;\n  double dStack_238;\n  uint uStack_22c;\n  MagickBooleanType MStack_1d0;\n  int iStack_188;\n  PrimitiveInfo *pPStack_e8;\n  PrimitiveInfo linecap [5];\n  \n  puVar47 = PTR___stack_chk_guard_003a9230;\n  pPStack_e8 = linecap;\n  image_00 = *(Image **)PTR___stack_chk_guard_003a9230;\n  pPVar18 = primitive_info;\n  pPVar17 = pPStack_e8;\n  pPVar36 = pPStack_e8;\n  do {\n    do {\n      pPVar34 = pPVar17;\n      pPVar29 = pPVar18;\n      pPVar18 = (PrimitiveInfo *)&pPVar29->coordinates;\n      uVar39 = *(undefined4 *)((int)&(pPVar29->point).x + 4);\n      uVar38 = *(undefined4 *)&(pPVar29->point).y;\n      uVar37 = *(undefined4 *)((int)&(pPVar29->point).y + 4);\n      *(undefined4 *)&(pPVar34->point).x = *(undefined4 *)&(pPVar29->point).x;\n      *(undefined4 *)((int)&(pPVar34->point).x + 4) = uVar39;\n      *(undefined4 *)&(pPVar34->point).y = uVar38;\n      *(undefined4 *)((int)&(pPVar34->point).y + 4) = uVar37;\n      pPVar17 = (PrimitiveInfo *)&pPVar34->coordinates;\n    } while (pPVar18 != (PrimitiveInfo *)&primitive_info->closed_subpath);\n    pPVar36 = pPVar36 + 1;\n    PVar5 = pPVar29->primitive;\n    pPVar34->coordinates = *(size_t *)pPVar18;\n    pPVar34->primitive = PVar5;\n    pPVar18 = primitive_info;\n    pPVar17 = pPVar36;\n  } while (pPVar36 != linecap + 4);\n  dVar50 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x47c8);\n  linecap[4].primitive = UndefinedPrimitive;\n  linecap[0].coordinates = 4;\n  linecap[1].point.x = linecap[1].point.x + dVar50;\n  linecap[2].point.x = linecap[2].point.x + dVar50;\n  linecap[2].point.y = linecap[2].point.y + dVar50;\n  linecap[3].point.y = linecap[3].point.y + dVar50;\n  MVar6 = DrawPolygonPrimitive(image,draw_info,pPStack_e8,exception);\n  if (image_00 == *(Image **)puVar47) {\n    return MVar6;\n  }\n  puVar47 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  if (image_00->debug != MagickFalse) {\n    (**(code **)(puVar47 + 0x3044d0))\n              (0x80,*(int *)(puVar47 + 0x303bd8) + 0x38b0,*(int *)(puVar47 + 0x303bd8) + 0x45dc,\n               0x168f,*(int *)(puVar47 + 0x303bd8) + 0x3dd8);\n  }\n  draw_info_00 = (DrawInfo *)(**(code **)(puVar47 + 0x3044ec))(0,draw_info);\n  pPVar4 = &draw_info_00->fill;\n  pPVar21 = &draw_info->stroke;\n  do {\n    pPVar20 = pPVar21;\n    pPVar7 = pPVar4;\n    pPVar21 = (PixelInfo *)&pPVar20->fuzz;\n    CVar32 = pPVar20->colorspace;\n    PVar31 = pPVar20->alpha_trait;\n    uVar37 = *(undefined4 *)&pPVar20->field_0xc;\n    pPVar7->storage_class = pPVar20->storage_class;\n    pPVar7->colorspace = CVar32;\n    pPVar7->alpha_trait = PVar31;\n    *(undefined4 *)&pPVar7->field_0xc = uVar37;\n    pPVar4 = (PixelInfo *)&pPVar7->fuzz;\n  } while (pPVar21 != (PixelInfo *)&(draw_info->stroke).index);\n  uVar37 = *(undefined4 *)((int)&pPVar20->fuzz + 4);\n  pIVar25 = draw_info_00->fill_pattern;\n  *(undefined4 *)&pPVar7->fuzz = *(undefined4 *)pPVar21;\n  *(undefined4 *)((int)&pPVar7->fuzz + 4) = uVar37;\n  if (pIVar25 != (Image *)0x0) {\n    pIVar25 = (Image *)(**(code **)(puVar47 + 0x30423c))();\n    draw_info_00->fill_pattern = pIVar25;\n  }\n  if (draw_info_00->stroke_pattern != (Image *)0x0) {\n    pIVar25 = (Image *)(**(code **)(puVar47 + 0x304b20))\n                                 (draw_info_00->stroke_pattern,0,0,1,exception);\n    draw_info_00->fill_pattern = pIVar25;\n  }\n  PVar5 = pPStack_e8->primitive;\n  *(undefined4 *)((int)&(draw_info_00->stroke).alpha + 4) = 0;\n  *(undefined4 *)&(draw_info_00->stroke).alpha = 0;\n  *(undefined4 *)((int)&draw_info_00->stroke_width + 4) = 0;\n  *(undefined4 *)&draw_info_00->stroke_width = 0;\n  draw_info_00->fill_rule = NonZeroRule;\n  if (PVar5 != UndefinedPrimitive) {\n    iVar8 = *(int *)(puVar47 + 0x303bd0);\n    iVar26 = *(int *)(puVar47 + 0x303bd8);\n    MStack_1d0 = MagickTrue;\n    dVar50 = *(double *)(iVar8 + 0x13f8);\n    iVar22 = *(int *)(puVar47 + 0x303bd0);\n    dVar51 = *(double *)(iVar22 + 0x1410);\n    uVar52 = *(undefined8 *)(iVar26 + 0x34a0);\nLAB_000a4e98:\n    sVar40 = pPStack_e8->coordinates;\n    if (sVar40 == 1) {\n      iVar44 = 0x28;\n      goto LAB_000a6620;\n    }\n    pdVar9 = (double *)(**(code **)(puVar47 + 0x3047fc))(sVar40 + 2,0x28);\n    if (pdVar9 != (double *)0x0) {\n      iVar44 = sVar40 * 0x28;\n      (**(code **)(puVar47 + 0x304648))(pdVar9,pPStack_e8,iVar44);\n      pdVar11 = pdVar9 + sVar40 * 5;\n      if ((ABS(pPStack_e8[sVar40 - 1].point.x - (pPStack_e8->point).x) < dVar50) &&\n         (ABS(pPStack_e8[sVar40 - 1].point.y - (pPStack_e8->point).y) < dVar50)) {\n        if (draw_info->linejoin - MiterJoin < 2) {\n          pPVar18 = pPStack_e8 + 1;\n          do {\n            pdVar12 = pdVar11;\n            pPVar17 = pPVar18;\n            pPVar18 = (PrimitiveInfo *)&pPVar17->coordinates;\n            sVar24 = *(size_t *)&(pPVar17->point).y;\n            sVar49 = *(size_t *)((int)&(pPVar17->point).y + 4);\n            sVar35 = *(size_t *)&(pPVar17->point).x;\n            *(size_t *)((int)pdVar12 + 4) = *(size_t *)((int)&(pPVar17->point).x + 4);\n            *(size_t *)(pdVar12 + 1) = sVar24;\n            *(size_t *)pdVar12 = sVar35;\n            *(size_t *)((int)pdVar12 + 0xc) = sVar49;\n            pdVar11 = pdVar12 + 2;\n          } while (pPVar18 != (PrimitiveInfo *)&pPStack_e8[1].closed_subpath);\n          iVar44 = iVar44 + 0x28;\n          sVar49 = *(size_t *)pPVar18;\n          pdVar11 = pdVar9 + sVar40 * 5 + 5;\n          *(PrimitiveType *)((int)pdVar12 + 0x14) = pPVar17->primitive;\n          *(size_t *)(pdVar12 + 2) = sVar49;\n          sVar40 = sVar40 + 1;\n        }\n        iStack_188 = 1;\n        bVar2 = true;\n        bVar1 = (int)sVar40 < 2;\n        *(size_t *)((int)pdVar11 + 0x14) = 0;\n        if (bVar1) goto LAB_000a6124;\nLAB_000a4fe8:\n        dVar72 = *(double *)(iVar8 + 0x13f8);\n        dStack_260 = pdVar9[5] - *pdVar9;\n        dStack_258 = pdVar9[6] - pdVar9[1];\n        if ((dVar72 <= ABS(dStack_260)) || (dVar72 <= ABS(dStack_258))) {\n          sVar49 = 1;\n        }\n        else {\n          sVar49 = 1;\n          pdVar11 = pdVar9 + 10;\n          do {\n            sVar49 = sVar49 + 1;\n            if (sVar49 == sVar40) {\n              LVar23 = draw_info->linecap;\n              sVar49 = sVar40;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar11 - *pdVar9;\n            dStack_258 = pdVar11[1] - pdVar9[1];\n          } while ((ABS(dStack_260) < dVar72) && (pdVar11 = pdVar11 + 5, ABS(dStack_258) < dVar72));\n        }\nLAB_000a5110:\n        uVar10 = sVar40 * 2;\n        pdVar11 = (double *)(**(code **)(puVar47 + 0x3047fc))(uVar10 + 0x618,0x10);\n        pdVar12 = (double *)(**(code **)(puVar47 + 0x3047fc))(uVar10 + 0x618,0x10);\n        if (pdVar11 == (double *)0x0) {\n          if (pdVar12 != (double *)0x0) {\n            (**(code **)(puVar47 + 0x3042b0))(pdVar12);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar47 + 0x3042b0))(pdVar9);\n          uVar37 = 0x1c93;\n          goto LAB_000a5724;\n        }\n        if (pdVar12 == (double *)0x0) {\n          (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n          goto LAB_000a6cbc;\n        }\n        if (ABS(dStack_260) < *(double *)(iVar8 + 0x13f8)) {\n          dVar72 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar63 = *(double *)(iVar13 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar63 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n        }\n        else if (ABS(dStack_258) < *(double *)(iVar8 + 0x13f8)) {\n          dVar63 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar72 = *(double *)(iVar13 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar63 = dStack_258 / dStack_260;\n          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a78) / dVar63;\n        }\nLAB_000a51b0:\n        dVar53 = (double)(**(code **)(puVar47 + 0x304288))(&draw_info->affine);\n        iVar13 = draw_info->miterlimit * draw_info->miterlimit;\n        dVar53 = dVar53 * draw_info->stroke_width *\n                 *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1400);\n        dVar57 = (double)iVar13;\n        if (iVar13 < 0) {\n          dVar57 = dVar57 + *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1418);\n        }\n        dVar57 = dVar57 * dVar53 * dVar53;\n        if (draw_info->linecap == SquareCap) {\n          iVar13 = *(int *)(puVar47 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar54 = 0.0;\n              if (sVar40 == 1) {\n                dVar64 = 0.0;\n                sVar35 = 1;\nLAB_000a6998:\n                pdVar16 = pdVar9 + (sVar35 - 1) * 5;\n              }\n              else {\n                pdVar16 = pdVar9 + 5;\n                dVar64 = 0.0;\n              }\n            }\n            else {\n              dVar75 = *(double *)(iVar8 + 0x13f8);\n              dVar64 = *pdVar9 - pdVar9[5];\n              dVar54 = pdVar9[1] - pdVar9[6];\n              if ((dVar75 <= ABS(dVar64)) || (dVar75 <= ABS(dVar54))) {\n                pdVar16 = pdVar9 + 5;\n              }\n              else {\n                sVar24 = 1;\n                pdVar28 = pdVar9 + 10;\n                do {\n                  pdVar16 = pdVar28;\n                  sVar24 = sVar24 + 1;\n                  sVar35 = sVar40;\n                  if (sVar24 == sVar40) goto LAB_000a6998;\n                  dVar64 = *pdVar9 - *pdVar16;\n                  dVar54 = pdVar9[1] - pdVar16[1];\n                } while ((ABS(dVar64) < dVar75) && (pdVar28 = pdVar16 + 5, ABS(dVar54) < dVar75));\n              }\n            }\n            dVar75 = (double)(**(code **)(puVar47 + 0x304a08))(dVar64,dVar54);\n            iVar13 = sVar40 - 2;\n            dVar61 = pdVar16[1];\n            pdVar43 = (double *)((int)pdVar9 + iVar44 + -0x28);\n            pdVar28 = pdVar9 + iVar13 * 5;\n            *pdVar9 = *pdVar16 + (dVar64 * (dVar53 + dVar75)) / dVar75;\n            pdVar9[1] = dVar61 + (dVar54 * (dVar53 + dVar75)) / dVar75;\n            if (-1 < iVar13) {\n              dVar75 = *(double *)(iVar8 + 0x13f8);\n              dVar64 = *pdVar43 - *pdVar28;\n              dVar54 = pdVar43[1] - pdVar28[1];\n              if (ABS(dVar64) < dVar75) {\n                pdVar16 = pdVar9 + (sVar40 - 3) * 5;\n                do {\n                  pdVar28 = pdVar16;\n                  if (dVar75 <= ABS(dVar54)) {\n                    pdVar28 = pdVar9 + iVar13 * 5;\n                    break;\n                  }\n                  iVar13 = iVar13 + -1;\n                  if (iVar13 == -1) break;\n                  dVar64 = *pdVar43 - *pdVar28;\n                  dVar54 = pdVar43[1] - pdVar28[1];\n                  pdVar16 = pdVar28 + -5;\n                } while (ABS(dVar64) < dVar75);\n              }\n            }\n            dVar75 = (double)(**(code **)(puVar47 + 0x304a08))(dVar64,dVar54);\n            dVar61 = pdVar28[1];\n            *pdVar43 = *pdVar28 + (dVar64 * (dVar53 + dVar75)) / dVar75;\n            pdVar43[1] = dVar61 + (dVar54 * (dVar53 + dVar75)) / dVar75;\n            goto LAB_000a5220;\n          }\n        }\n        else {\nLAB_000a5220:\n          iVar13 = *(int *)(puVar47 + 0x303bd0);\n        }\n        dVar54 = dVar53 * dVar53;\n        dVar64 = dVar54 / (dVar72 * dVar72 + *(double *)(iVar13 + 0x1438));\n        dVar75 = SQRT(dVar64);\n        if (dVar64 < 0.0) {\n          (**(code **)(puVar47 + 0x304770))();\n        }\n        dVar72 = dVar72 * dVar75;\n        pdVar16 = pdVar9 + sVar49 * 5;\n        dVar69 = *pdVar16;\n        dVar73 = pdVar16[1];\n        dVar68 = dVar72 + pdVar9[1];\n        dVar66 = pdVar9[1] - dVar72;\n        dVar64 = dVar75 + *pdVar9;\n        dStack_238 = dVar73 - dVar72;\n        dStack_240 = dVar69 - dVar75;\n        dVar67 = *pdVar9 - dVar75;\n        dVar62 = dVar67;\n        dVar61 = dVar68;\n        dStack_250 = dVar75 + dVar69;\n        dStack_248 = dVar72 + dVar73;\n        if (0.0 < dVar75 * dStack_258 - dVar72 * dStack_260) {\n          dVar62 = dVar64;\n          dVar61 = dVar66;\n          dVar64 = dVar67;\n          dVar66 = dVar68;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar75 + dVar69;\n          dStack_238 = dVar72 + dVar73;\n        }\n        sVar35 = sVar49 + 1;\n        *pdVar12 = dVar62;\n        pdVar12[1] = dVar66;\n        *pdVar11 = dVar64;\n        pdVar11[1] = dVar61;\n        if ((int)sVar35 < (int)sVar40) {\n          iVar27 = *(int *)(puVar47 + 0x303bd8);\n          iVar44 = 1;\n          iVar46 = 1;\n          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a78);\n          dVar75 = *(double *)(*(int *)(puVar47 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar10;\n          do {\n            dVar55 = pdVar16[6];\n            dVar58 = pdVar16[5];\n            dVar59 = dVar55 - dVar73;\n            dVar65 = dVar58 - dVar69;\n            dVar60 = dVar58 - dVar69;\n            dVar67 = dStack_238;\n            dVar68 = dStack_240;\n            dVar70 = dStack_248;\n            dVar74 = dStack_250;\n            if (*(double *)(iVar27 + -0x2e38) <=\n                dVar65 * dVar65 + (dVar55 - dVar73) * (dVar55 - dVar73)) {\n              if (ABS(dVar65) < *(double *)(iVar8 + 0x13f8)) {\n                dVar67 = 0.0;\n                dVar68 = dVar54;\n                if (0.0 <= dVar65) {\n                  if (0.0 <= dVar55 - dVar73) goto LAB_000a53e0;\n                }\n                else if (dVar55 - dVar73 < 0.0) {\nLAB_000a53e0:\n                  dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar59) < *(double *)(iVar8 + 0x13f8)) {\n                dVar65 = 0.0;\n                dVar68 = dVar54 / dVar75;\n                if (0.0 <= dVar55 - dVar73) {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (dVar58 - dVar69 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (0.0 <= dVar58 - dVar69) {\nLAB_000a5880:\n                    dVar67 = *(double *)(iVar30 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar67 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar65 = (dVar55 - dVar73) / (dVar58 - dVar69);\n                dVar67 = dVar72 / dVar65;\n                dVar68 = dVar54 / (dVar67 * dVar67 + *(double *)(iVar13 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar28 = pdVar9 + sVar49 * 5;\n              dVar70 = SQRT(dVar68);\n              if (dVar68 < 0.0) {\n                (**(code **)(puVar47 + 0x304770))();\n                dVar69 = *pdVar28;\n                dVar73 = pdVar28[1];\n                dVar58 = pdVar16[5];\n                dVar55 = pdVar16[6];\n              }\n              dVar67 = dVar67 * dVar70;\n              dStack_2a8 = dVar58 - dVar70;\n              dStack_2a0 = dVar55 - dVar67;\n              dStack_278 = dVar69 - dVar70;\n              dStack_270 = dVar73 - dVar67;\n              dStack_2b8 = dVar70 + dVar58;\n              dStack_2b0 = dVar67 + dVar55;\n              dStack_288 = dVar70 + dVar69;\n              dStack_280 = dVar67 + dVar73;\n              if (0.0 < dVar59 * dVar70 - dVar60 * dVar67) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar70 + dVar58;\n                dStack_2a0 = dVar67 + dVar55;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar70 + dVar69;\n                dStack_270 = dVar67 + dVar73;\n              }\n              dVar67 = dVar63 - dVar65;\n              dVar69 = dStack_250;\n              dVar73 = dStack_248;\n              dVar55 = dStack_238;\n              dVar58 = dStack_240;\n              if (*(double *)(iVar8 + 0x13f8) <= ABS(dVar67)) {\n                dVar69 = (((dVar64 * dVar63 - dVar61) - dVar65 * dStack_2b8) + dStack_2b0) / dVar67;\n                dVar58 = (((dVar63 * dVar62 - dVar66) - dVar65 * dStack_2a8) + dStack_2a0) / dVar67;\n                dVar73 = (dVar69 - dVar64) * dVar63 + dVar61;\n                dVar55 = (dVar58 - dVar62) * dVar63 + dVar66;\n              }\n              if ((int)uStack_22c <= iVar46 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar11 = (double *)\n                            (**(code **)(puVar47 + 0x304710))(pdVar11,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                }\n              }\n              if (iVar44 + 0x618 < (int)uVar10) {\n                if (pdVar11 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a5710:\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar10) {\n                  pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  if (pdVar11 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar12 != (double *)0x0) goto LAB_000a5700;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar48)(pdVar9);\n                  uVar37 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar12 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                uVar10 = uVar10 + 0x618;\n                if (pdVar11 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar12 == (double *)0x0) {\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  goto LAB_000a5710;\n                }\n              }\n              LVar14 = draw_info->linejoin;\n              dVar62 = dStack_278;\n              dVar61 = dStack_280;\n              dVar64 = dStack_288;\n              dVar66 = dStack_270;\n              sVar49 = sVar35;\n              dVar63 = dVar65;\n              if (dVar60 * dStack_258 - dVar59 * dStack_260 <= 0.0) {\n                if (LVar14 != RoundJoin) {\n                  if (LVar14 == BevelJoin) {\n                    pdVar28 = pdVar11 + iVar46 * 2;\n                    pdVar12[iVar44 * 2] = dStack_240;\n                    (pdVar12 + iVar44 * 2)[1] = dStack_238;\n                    pdVar12[iVar44 * 2 + 2] = dStack_278;\n                    (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if (dVar57 < (dVar58 - dVar69) * (dVar58 - dVar69) +\n                                   (dVar55 - dVar73) * (dVar55 - dVar73)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar44 = iVar44 + 1;\n                      iVar46 = iVar46 + 1;\n                      *pdVar43 = dVar58;\n                      pdVar43[1] = dVar55;\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar30 = iVar46 + 1;\n                pdVar43 = pdVar11 + iVar46 * 2;\n                if ((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57) {\n                  *pdVar43 = dVar69;\n                  pdVar43[1] = dVar73;\n                }\n                else {\n                  iVar30 = iVar46 + 2;\n                  *pdVar43 = dStack_250;\n                  pdVar43[1] = dStack_248;\n                  pdVar11[iVar46 * 2 + 2] = dStack_288;\n                  (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                }\n                dVar69 = *pdVar28;\n                dVar68 = pdVar28[1];\n                dVar63 = dVar68;\n                dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_238 - dVar68,dStack_240 - dVar69);\n                dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_270 - dVar63,dStack_278 - dVar69);\n                if (dVar63 < dVar67) {\n                  dVar63 = dVar63 + *(double *)(iVar26 + 0x34a0);\n                }\n                dVar63 = dVar63 - dVar67;\n                dVar73 = *(double *)(iVar13 + 0x1438) / dVar53;\n                dVar70 = SQRT(dVar73);\n                if (dVar73 < 0.0) {\n                  (**(code **)(puVar47 + 0x304770))();\n                }\n                dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar63 / (dVar70 + dVar70));\n                dVar70 = *(double *)(iVar22 + 0x1410);\n                if (dVar73 < dVar70) {\n                  uVar42 = (uint)dVar73;\n                }\n                else {\n                  uVar42 = (int)(dVar73 - dVar70) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar30 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar46 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar11,iVar46,0x10);\n                  }\n                  else {\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  }\n                }\n                if (uVar42 + 0x618 < 0x4000001) {\n                  if ((int)uVar10 <= (int)(iVar44 + 0x618 + uVar42)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uVar10 < uVar42 + 0x618) goto LAB_000a67d4;\n                    iVar46 = uVar42 + uVar10;\n                    uVar10 = iVar46 + 0x618;\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,iVar46 + 0xc30,0x10);\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar11 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a6d2c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar12 = (double *)(*pcVar48)(pdVar12);\nLAB_000a64c4:\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a6884;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar28 = pdVar12 + iVar44 * 2;\n                *pdVar28 = dStack_240;\n                pdVar28[1] = dStack_238;\n                if (1 < (int)uVar42) {\n                  uVar71 = *(undefined8 *)(iVar26 + 0x34a0);\n                  uVar41 = 1;\n                  do {\n                    uVar45 = uVar41 + 1;\n                    dVar70 = ((double)(int)uVar41 * dVar63) / (double)(int)uVar42 + dVar67;\n                    uVar56 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar56);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar69;\n                    uVar56 = (*pcVar48)(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar56);\n                    pdVar28[3] = dVar53 * dVar73 + dVar68;\n                    uVar41 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar42);\n                }\n                *pdVar12 = dStack_278;\n                pdVar12[1] = dStack_270;\n                dStack_258 = dVar59;\n                dStack_260 = dVar60;\n                dVar67 = dStack_2a0;\n                dVar68 = dStack_2a8;\n                dVar70 = dStack_2b0;\n                dVar74 = dStack_2b8;\n                iVar44 = 1;\n                iVar46 = iVar30;\n                dVar63 = dVar65;\n              }\n              else {\n                if (LVar14 != RoundJoin) {\n                  if (LVar14 == BevelJoin) {\n                    iVar30 = iVar46 * 2;\n                    iVar3 = iVar46 * 2;\n                    iVar46 = iVar46 + 2;\n                    pdVar11[iVar30] = dStack_250;\n                    (pdVar11 + iVar30)[1] = dStack_248;\n                    pdVar28 = pdVar12 + iVar44 * 2;\n                    pdVar11[iVar3 + 2] = dStack_288;\n                    (pdVar11 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar58;\n                      pdVar28[1] = dVar55;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_240;\n                      pdVar28[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                          (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar43 = dStack_240;\n                      pdVar43[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar30 = iVar44 + 1;\n                pdVar43 = pdVar12 + iVar44 * 2;\n                if ((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57) {\n                  *pdVar43 = dVar58;\n                  pdVar43[1] = dVar55;\n                }\n                else {\n                  iVar30 = iVar44 + 2;\n                  *pdVar43 = dStack_240;\n                  pdVar43[1] = dStack_238;\n                  pdVar12[iVar44 * 2 + 2] = dStack_278;\n                  (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                }\n                dVar68 = *pdVar28;\n                dVar69 = pdVar28[1];\n                dVar63 = dVar68;\n                dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_248 - dVar69,dStack_250 - dVar68);\n                dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_280 - dVar69,dStack_288 - dVar63);\n                if (dVar67 < dVar63) {\n                  dVar67 = dVar67 + *(double *)(iVar26 + 0x34a0);\n                }\n                dVar73 = dVar67 - dVar63;\n                dVar70 = *(double *)(iVar13 + 0x1438) / dVar53;\n                dVar74 = SQRT(dVar70);\n                if (dVar70 < 0.0) {\n                  (**(code **)(puVar47 + 0x304770))();\n                }\n                dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar73 / (dVar74 + dVar74));\n                if (dVar73 < dVar51) {\n                  uVar41 = (uint)dVar73;\n                  uVar42 = uVar41 + 0x618;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                  if (uVar42 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar11 = (double *)(*pcVar48)(pdVar11);\n                }\n                else {\n                  uVar41 = (int)(dVar73 - dVar51) | 0x80000000;\n                  uVar42 = uVar41 + 0x618;\n                  if (0x4000000 < uVar42) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar46 + 0x618 + uVar41)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uStack_22c < uVar42) goto LAB_000a66a4;\n                    iVar44 = uStack_22c + uVar41;\n                    uStack_22c = iVar44 + 0x618;\n                    pdVar11 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar11,iVar44 + 0xc30,0x10);\n                  }\n                }\n                if (iVar30 + 0x618 < (int)uVar10) {\n                  if (pdVar11 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a665c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar10 < 0xfffff9e8) {\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                    uVar10 = uVar10 + 0x618;\n                  }\n                  else {\n                    pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  }\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a664c;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar28 = pdVar11 + iVar46 * 2;\n                *pdVar28 = dStack_250;\n                pdVar28[1] = dStack_248;\n                if (1 < (int)uVar41) {\n                  dVar63 = dVar63 - dVar67;\n                  uVar42 = 1;\n                  do {\n                    uVar45 = uVar42 + 1;\n                    dVar70 = ((double)(int)uVar42 * dVar63) / (double)(int)uVar41 + dVar67;\n                    uVar71 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar71);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar68;\n                    uVar71 = (*pcVar48)(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar71);\n                    pdVar28[3] = dVar53 * dVar73 + dVar69;\n                    uVar42 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar41);\n                }\n                *pdVar11 = dStack_288;\n                pdVar11[1] = dStack_280;\n                dStack_258 = dVar59;\n                dStack_260 = dVar60;\n                dVar67 = dStack_2a0;\n                dVar68 = dStack_2a8;\n                dVar70 = dStack_2b0;\n                dVar74 = dStack_2b8;\n                iVar44 = iVar30;\n                iVar46 = 1;\n                dVar63 = dVar65;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar74;\n            dStack_248 = dVar70;\n            dStack_240 = dVar68;\n            dStack_238 = dVar67;\n            if (sVar35 + 1 == sVar40) goto LAB_000a5a58;\n            pdVar16 = pdVar16 + 5;\n            sVar35 = sVar35 + 1;\n            dVar69 = pdVar9[sVar49 * 5];\n            dVar73 = (pdVar9 + sVar49 * 5)[1];\n          } while( true );\n        }\n        iVar44 = 4;\n        iVar27 = 0x10;\n        iVar46 = 0x10;\n        iVar13 = 2;\n        goto LAB_000a5a70;\n      }\n      bVar1 = (int)sVar40 < 2;\n      iStack_188 = 0;\n      bVar2 = false;\n      *(size_t *)((int)pdVar11 + 0x14) = 0;\n      if (!bVar1) goto LAB_000a4fe8;\nLAB_000a6124:\n      if (sVar40 != 1) {\n        sVar49 = 1;\n        dStack_258 = 0.0;\n        dStack_260 = 0.0;\n        goto LAB_000a5110;\n      }\n      sVar49 = 1;\n      dStack_258 = 0.0;\n      LVar23 = draw_info->linecap;\n      dStack_260 = 0.0;\njoined_r0x000a50f8:\n      if (LVar23 == RoundCap) {\n        pcVar48 = *(code **)(puVar47 + 0x304644);\n        if (!bVar2) {\n          sVar49 = sVar49 - 1;\n          goto LAB_000a5110;\n        }\n      }\n      else {\n        pcVar48 = *(code **)(puVar47 + 0x304644);\n      }\n      pPVar18 = (PrimitiveInfo *)(*pcVar48)(0x28);\n      pdVar11 = pdVar9;\n      pPVar17 = pPVar18;\n      do {\n        pPVar36 = pPVar17;\n        pdVar12 = pdVar11;\n        pdVar11 = pdVar12 + 2;\n        sVar35 = *(size_t *)((int)pdVar12 + 4);\n        sVar49 = *(size_t *)(pdVar12 + 1);\n        sVar40 = *(size_t *)((int)pdVar12 + 0xc);\n        *(size_t *)&(pPVar36->point).x = *(size_t *)pdVar12;\n        *(size_t *)((int)&(pPVar36->point).x + 4) = sVar35;\n        *(size_t *)&(pPVar36->point).y = sVar49;\n        *(size_t *)((int)&(pPVar36->point).y + 4) = sVar40;\n        pPVar17 = (PrimitiveInfo *)&pPVar36->coordinates;\n      } while (pdVar11 != pdVar9 + 4);\n      PVar5 = *(PrimitiveType *)((int)pdVar12 + 0x14);\n      pcVar48 = *(code **)(puVar47 + 0x3042b0);\n      pPVar36->coordinates = *(size_t *)pdVar11;\n      pPVar36->primitive = PVar5;\n      pPVar18->coordinates = 0;\n      (*pcVar48)(pdVar9);\n      goto LAB_000a61cc;\n    }\n    uVar37 = 0x1c57;\nLAB_000a5724:\n    (**(code **)(puVar47 + 0x304210))\n              (exception,*(int *)(puVar47 + 0x303bd8) + 0x38b0,*(int *)(puVar47 + 0x303bd8) + 0x45c8\n               ,uVar37,400,*(int *)(puVar47 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar47 + 0x303bd0) + 0x3e28,*(int *)(puVar47 + 0x303bd4) + -0x3688);\n    MStack_1d0 = MagickFalse;\n    goto LAB_000a5774;\n  }\n  MStack_1d0 = MagickTrue;\nLAB_000a5774:\n  pcVar48 = *(code **)(puVar47 + 0x3042d8);\nLAB_000a5778:\n  (*pcVar48)(draw_info_00);\n  if (image_00->debug != MagickFalse) {\n    (**(code **)(puVar47 + 0x3044d0))\n              (0x80,*(int *)(puVar47 + 0x303bd8) + 0x38b0,*(int *)(puVar47 + 0x303bd8) + 0x45dc,\n               0x16b4,*(int *)(puVar47 + 0x303bd8) + 0x3df8);\n  }\n  return MStack_1d0;\nLAB_000a5a58:\n  iVar13 = iVar46 + 1;\n  iVar46 = iVar46 << 4;\n  iVar27 = iVar44 << 4;\n  iVar44 = iVar44 + 1 + iVar13;\nLAB_000a5a70:\n  pcVar48 = *(code **)(puVar47 + 0x3047fc);\n  iVar44 = iStack_188 * 2 + iVar44;\n  *(double *)((int)pdVar11 + iVar46) = dStack_250;\n  ((double *)((int)pdVar11 + iVar46))[1] = dStack_248;\n  *(double *)((int)pdVar12 + iVar27) = dStack_240;\n  ((double *)((int)pdVar12 + iVar27))[1] = dStack_238;\n  pPVar18 = (PrimitiveInfo *)(*pcVar48)(iVar44 + 2,0x28);\n  if (pPVar18 == (PrimitiveInfo *)0x0) {\n    (**(code **)(puVar47 + 0x304210))\n              (exception,*(int *)(puVar47 + 0x303bd8) + 0x38b0,*(int *)(puVar47 + 0x303bd8) + 0x45c8\n               ,0x1dbc,400,*(int *)(puVar47 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar47 + 0x303bd0) + 0x3e28,*(int *)(puVar47 + 0x303bd4) + -0x3688);\n    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\n    (**(code **)(puVar47 + 0x3042b0))(pdVar9);\n    MStack_1d0 = MagickFalse;\n    goto LAB_000a5774;\n  }\n  pdVar43 = pdVar9 + 4;\n  pdVar16 = pdVar9;\n  pPVar17 = pPVar18;\n  pdVar28 = pdVar11;\n  pPVar36 = pPVar18;\n  do {\n    do {\n      pPVar29 = pPVar17;\n      pdVar15 = pdVar16 + 2;\n      sVar35 = *(size_t *)((int)pdVar16 + 4);\n      sVar49 = *(size_t *)(pdVar16 + 1);\n      sVar40 = *(size_t *)((int)pdVar16 + 0xc);\n      *(size_t *)&(pPVar29->point).x = *(size_t *)pdVar16;\n      *(size_t *)((int)&(pPVar29->point).x + 4) = sVar35;\n      *(size_t *)&(pPVar29->point).y = sVar49;\n      *(size_t *)((int)&(pPVar29->point).y + 4) = sVar40;\n      pdVar16 = pdVar15;\n      pPVar17 = (PrimitiveInfo *)&pPVar29->coordinates;\n    } while (pdVar15 != pdVar43);\n    pdVar15 = pdVar28 + 2;\n    PVar5 = *(PrimitiveType *)((int)pdVar9 + 0x24);\n    pPVar29->coordinates = *(size_t *)pdVar43;\n    pPVar29->primitive = PVar5;\n    uVar39 = *(undefined4 *)((int)pdVar28 + 4);\n    uVar38 = *(undefined4 *)(pdVar28 + 1);\n    uVar37 = *(undefined4 *)((int)pdVar28 + 0xc);\n    *(undefined4 *)&(pPVar36->point).x = *(undefined4 *)pdVar28;\n    *(undefined4 *)((int)&(pPVar36->point).x + 4) = uVar39;\n    *(undefined4 *)&(pPVar36->point).y = uVar38;\n    *(undefined4 *)((int)&(pPVar36->point).y + 4) = uVar37;\n    pdVar16 = pdVar9;\n    pPVar17 = pPVar36 + 1;\n    pdVar28 = pdVar15;\n    pPVar36 = pPVar36 + 1;\n  } while (pdVar11 + iVar13 * 2 != pdVar15);\n  pPVar36 = pPVar18 + iVar13;\n  pPVar17 = pPVar36;\n  if (bVar2) {\n    do {\n      pPVar29 = pPVar17;\n      pdVar28 = pdVar16 + 2;\n      sVar35 = *(size_t *)((int)pdVar16 + 4);\n      sVar49 = *(size_t *)(pdVar16 + 1);\n      sVar40 = *(size_t *)((int)pdVar16 + 0xc);\n      *(size_t *)&(pPVar29->point).x = *(size_t *)pdVar16;\n      *(size_t *)((int)&(pPVar29->point).x + 4) = sVar35;\n      *(size_t *)&(pPVar29->point).y = sVar49;\n      *(size_t *)((int)&(pPVar29->point).y + 4) = sVar40;\n      pdVar16 = pdVar28;\n      pPVar17 = (PrimitiveInfo *)&pPVar29->coordinates;\n    } while (pdVar28 != pdVar43);\n    iVar13 = iVar13 + 1;\n    PVar5 = *(PrimitiveType *)((int)pdVar9 + 0x24);\n    pPVar29->coordinates = *(size_t *)(pdVar9 + 4);\n    pPVar29->primitive = PVar5;\n    uVar39 = *(undefined4 *)((int)&(pPVar18->point).x + 4);\n    uVar38 = *(undefined4 *)&(pPVar18->point).y;\n    uVar37 = *(undefined4 *)((int)&(pPVar18->point).y + 4);\n    pPVar17 = pPVar18 + iVar13;\n    *(undefined4 *)&(pPVar36->point).x = *(undefined4 *)&(pPVar18->point).x;\n    *(undefined4 *)((int)&(pPVar36->point).x + 4) = uVar39;\n    *(undefined4 *)&(pPVar36->point).y = uVar38;\n    *(undefined4 *)((int)&(pPVar36->point).y + 4) = uVar37;\n  }\n  iStack_188 = iVar44 - iStack_188;\n  if (iVar13 < iStack_188) {\n    pdVar16 = pdVar9;\n    pPVar17 = pPVar18 + iVar13;\n    pdVar28 = pdVar12 + ((iStack_188 + 0xfffffff) - iVar13) * 2;\n    pPVar29 = pPVar18 + iVar13;\n    do {\n      do {\n        pPVar34 = pPVar17;\n        pdVar15 = pdVar16 + 2;\n        sVar35 = *(size_t *)((int)pdVar16 + 4);\n        sVar49 = *(size_t *)(pdVar16 + 1);\n        sVar40 = *(size_t *)((int)pdVar16 + 0xc);\n        *(size_t *)&(pPVar34->point).x = *(size_t *)pdVar16;\n        *(size_t *)((int)&(pPVar34->point).x + 4) = sVar35;\n        *(size_t *)&(pPVar34->point).y = sVar49;\n        *(size_t *)((int)&(pPVar34->point).y + 4) = sVar40;\n        pdVar16 = pdVar15;\n        pPVar17 = (PrimitiveInfo *)&pPVar34->coordinates;\n      } while (pdVar15 != pdVar43);\n      pdVar15 = pdVar28 + -2;\n      PVar5 = *(PrimitiveType *)((int)pdVar9 + 0x24);\n      pPVar34->coordinates = *(size_t *)pdVar43;\n      pPVar34->primitive = PVar5;\n      uVar39 = *(undefined4 *)((int)pdVar28 + 4);\n      uVar38 = *(undefined4 *)(pdVar28 + 1);\n      uVar37 = *(undefined4 *)((int)pdVar28 + 0xc);\n      *(undefined4 *)&(pPVar29->point).x = *(undefined4 *)pdVar28;\n      *(undefined4 *)((int)&(pPVar29->point).x + 4) = uVar39;\n      *(undefined4 *)&(pPVar29->point).y = uVar38;\n      *(undefined4 *)((int)&(pPVar29->point).y + 4) = uVar37;\n      pdVar16 = pdVar9;\n      pPVar17 = pPVar29 + 1;\n      pdVar28 = pdVar15;\n      pPVar29 = pPVar29 + 1;\n    } while (pdVar12 + -2 != pdVar15);\n    pPVar17 = pPVar18 + iStack_188;\n    iVar13 = iStack_188;\n  }\n  pPVar33 = pPVar18 + iVar13 + 1;\n  pdVar16 = pdVar9;\n  pPVar29 = pPVar17;\n  pPVar34 = pPVar33;\n  if (bVar2) {\n    do {\n      pPVar34 = pPVar29;\n      pdVar28 = pdVar16 + 2;\n      sVar35 = *(size_t *)((int)pdVar16 + 4);\n      sVar49 = *(size_t *)(pdVar16 + 1);\n      sVar40 = *(size_t *)((int)pdVar16 + 0xc);\n      *(size_t *)&(pPVar34->point).x = *(size_t *)pdVar16;\n      *(size_t *)((int)&(pPVar34->point).x + 4) = sVar35;\n      *(size_t *)&(pPVar34->point).y = sVar49;\n      *(size_t *)((int)&(pPVar34->point).y + 4) = sVar40;\n      pdVar16 = pdVar28;\n      pPVar29 = (PrimitiveInfo *)&pPVar34->coordinates;\n    } while (pdVar28 != pdVar43);\n    PVar5 = *(PrimitiveType *)((int)pdVar9 + 0x24);\n    pPVar34->coordinates = *(size_t *)(pdVar9 + 4);\n    pPVar34->primitive = PVar5;\n    uVar38 = *(undefined4 *)((int)&pPVar36[1].point.x + 4);\n    uVar37 = *(undefined4 *)&pPVar36[1].point.y;\n    uVar39 = *(undefined4 *)((int)&pPVar36[1].point.y + 4);\n    *(undefined4 *)&(pPVar17->point).x = *(undefined4 *)&pPVar36[1].point.x;\n    *(undefined4 *)((int)&(pPVar17->point).x + 4) = uVar38;\n    *(undefined4 *)&(pPVar17->point).y = uVar37;\n    *(undefined4 *)((int)&(pPVar17->point).y + 4) = uVar39;\n    pPVar34 = pPVar18 + iVar13 + 2;\n    pdVar16 = pdVar9;\n    pPVar17 = pPVar33;\n    pPVar29 = pPVar33;\n  }\n  do {\n    pPVar36 = pPVar17;\n    pdVar28 = pdVar16;\n    pdVar16 = pdVar28 + 2;\n    sVar35 = *(size_t *)((int)pdVar28 + 4);\n    sVar49 = *(size_t *)(pdVar28 + 1);\n    sVar40 = *(size_t *)((int)pdVar28 + 0xc);\n    *(size_t *)&(pPVar36->point).x = *(size_t *)pdVar28;\n    *(size_t *)((int)&(pPVar36->point).x + 4) = sVar35;\n    *(size_t *)&(pPVar36->point).y = sVar49;\n    *(size_t *)((int)&(pPVar36->point).y + 4) = sVar40;\n    pPVar17 = (PrimitiveInfo *)&pPVar36->coordinates;\n  } while (pdVar16 != pdVar43);\n  PVar5 = *(PrimitiveType *)((int)pdVar28 + 0x14);\n  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n  pPVar36->coordinates = *(size_t *)pdVar16;\n  pPVar36->primitive = PVar5;\n  uVar39 = *(undefined4 *)((int)&(pPVar18->point).x + 4);\n  uVar38 = *(undefined4 *)&(pPVar18->point).y;\n  uVar37 = *(undefined4 *)((int)&(pPVar18->point).y + 4);\n  *(undefined4 *)&(pPVar29->point).x = *(undefined4 *)&(pPVar18->point).x;\n  *(undefined4 *)((int)&(pPVar29->point).x + 4) = uVar39;\n  *(undefined4 *)&(pPVar29->point).y = uVar38;\n  *(undefined4 *)((int)&(pPVar29->point).y + 4) = uVar37;\n  pPVar34->primitive = UndefinedPrimitive;\n  pPVar18->coordinates = iVar44 + 1;\n  (*pcVar48)(pdVar11);\n  (**(code **)(puVar47 + 0x3042b0))(pdVar12);\n  (**(code **)(puVar47 + 0x3042b0))(pdVar9);\nLAB_000a61cc:\n  MVar6 = DrawPolygonPrimitive(image_00,draw_info_00,pPVar18,exception);\n  MStack_1d0 = MStack_1d0 & MVar6;\n  (**(code **)(puVar47 + 0x3042b0))(pPVar18);\n  if (MStack_1d0 == MagickFalse) goto LAB_000a5774;\n  sVar40 = pPStack_e8->coordinates;\n  iVar44 = sVar40 * 0x28;\n  if ((draw_info->linecap == RoundCap) && (pPStack_e8->closed_subpath == MagickFalse)) {\n    MVar6 = DrawRoundLinecap(image_00,draw_info,pPStack_e8,exception);\n    MVar19 = DrawRoundLinecap(image_00,draw_info,pPStack_e8 + (sVar40 - 1),exception);\n    MStack_1d0 = MVar6 & MVar19 & MagickTrue;\n    iVar44 = pPStack_e8->coordinates * 0x28;\n  }\nLAB_000a6620:\n  pPStack_e8 = (PrimitiveInfo *)((int)&(pPStack_e8->point).x + iVar44);\n  if (pPStack_e8->primitive == UndefinedPrimitive) goto code_r0x000a6634;\n  goto LAB_000a4e98;\ncode_r0x000a6634:\n  pcVar48 = *(code **)(puVar47 + 0x3042d8);\n  goto LAB_000a5778;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "PixelInfo *pPVar4;" type_identifier (pointer_declarator "*pPVar4" * identifier) ;) (declaration "Image *image_00;" type_identifier (pointer_declarator "*image_00" * identifier) ;) (declaration "PrimitiveType PVar5;" type_identifier identifier ;) (declaration "MagickBooleanType MVar6;" type_identifier identifier ;) (declaration "DrawInfo *draw_info_00;" type_identifier (pointer_declarator "*draw_info_00" * identifier) ;) (declaration "PixelInfo *pPVar7;" type_identifier (pointer_declarator "*pPVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "double *pdVar9;" primitive_type (pointer_declarator "*pdVar9" * identifier) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "double *pdVar11;" primitive_type (pointer_declarator "*pdVar11" * identifier) ;) (declaration "double *pdVar12;" primitive_type (pointer_declarator "*pdVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "LineJoin LVar14;" type_identifier identifier ;) (declaration "double *pdVar15;" primitive_type (pointer_declarator "*pdVar15" * identifier) ;) (declaration "double *pdVar16;" primitive_type (pointer_declarator "*pdVar16" * identifier) ;) (declaration "PrimitiveInfo *pPVar17;" type_identifier (pointer_declarator "*pPVar17" * identifier) ;) (declaration "PrimitiveInfo *pPVar18;" type_identifier (pointer_declarator "*pPVar18" * identifier) ;) (declaration "MagickBooleanType MVar19;" type_identifier identifier ;) (declaration "PixelInfo *pPVar20;" type_identifier (pointer_declarator "*pPVar20" * identifier) ;) (declaration "PixelInfo *pPVar21;" type_identifier (pointer_declarator "*pPVar21" * identifier) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "LineCap LVar23;" type_identifier identifier ;) (declaration "size_t sVar24;" primitive_type identifier ;) (declaration "Image *pIVar25;" type_identifier (pointer_declarator "*pIVar25" * identifier) ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "int iVar27;" primitive_type identifier ;) (declaration "double *pdVar28;" primitive_type (pointer_declarator "*pdVar28" * identifier) ;) (declaration "PrimitiveInfo *pPVar29;" type_identifier (pointer_declarator "*pPVar29" * identifier) ;) (declaration "int iVar30;" primitive_type identifier ;) (declaration "PixelTrait PVar31;" type_identifier identifier ;) (declaration "ColorspaceType CVar32;" type_identifier identifier ;) (declaration "PrimitiveInfo *pPVar33;" type_identifier (pointer_declarator "*pPVar33" * identifier) ;) (declaration "PrimitiveInfo *pPVar34;" type_identifier (pointer_declarator "*pPVar34" * identifier) ;) (declaration "size_t sVar35;" primitive_type identifier ;) (declaration "PrimitiveInfo *pPVar36;" type_identifier (pointer_declarator "*pPVar36" * identifier) ;) (declaration "undefined4 uVar37;" type_identifier identifier ;) (declaration "undefined4 uVar38;" type_identifier identifier ;) (declaration "undefined4 uVar39;" type_identifier identifier ;) (declaration "size_t sVar40;" primitive_type identifier ;) (declaration "uint uVar41;" type_identifier identifier ;) (declaration "uint uVar42;" type_identifier identifier ;) (declaration "double *pdVar43;" primitive_type (pointer_declarator "*pdVar43" * identifier) ;) (declaration "int iVar44;" primitive_type identifier ;) (declaration "uint uVar45;" type_identifier identifier ;) (declaration "int iVar46;" primitive_type identifier ;) (declaration "undefined *puVar47;" type_identifier (pointer_declarator "*puVar47" * identifier) ;) (declaration "code *pcVar48;" type_identifier (pointer_declarator "*pcVar48" * identifier) ;) (declaration "size_t sVar49;" primitive_type identifier ;) (declaration "double dVar50;" primitive_type identifier ;) (declaration "double dVar51;" primitive_type identifier ;) (declaration "undefined8 uVar52;" type_identifier identifier ;) (declaration "double dVar53;" primitive_type identifier ;) (declaration "double dVar54;" primitive_type identifier ;) (declaration "double dVar55;" primitive_type identifier ;) (declaration "undefined8 uVar56;" type_identifier identifier ;) (declaration "double dVar57;" primitive_type identifier ;) (declaration "double dVar58;" primitive_type identifier ;) (declaration "double dVar59;" primitive_type identifier ;) (declaration "double dVar60;" primitive_type identifier ;) (declaration "double dVar61;" primitive_type identifier ;) (declaration "double dVar62;" primitive_type identifier ;) (declaration "double dVar63;" primitive_type identifier ;) (declaration "double dVar64;" primitive_type identifier ;) (declaration "double dVar65;" primitive_type identifier ;) (declaration "double dVar66;" primitive_type identifier ;) (declaration "double dVar67;" primitive_type identifier ;) (declaration "double dVar68;" primitive_type identifier ;) (declaration "double dVar69;" primitive_type identifier ;) (declaration "double dVar70;" primitive_type identifier ;) (declaration "undefined8 uVar71;" type_identifier identifier ;) (declaration "double dVar72;" primitive_type identifier ;) (declaration "double dVar73;" primitive_type identifier ;) (declaration "double dVar74;" primitive_type identifier ;) (declaration "double dVar75;" primitive_type identifier ;) (declaration "double dStack_2b8;" primitive_type identifier ;) (declaration "double dStack_2b0;" primitive_type identifier ;) (declaration "double dStack_2a8;" primitive_type identifier ;) (declaration "double dStack_2a0;" primitive_type identifier ;) (declaration "double dStack_288;" primitive_type identifier ;) (declaration "double dStack_280;" primitive_type identifier ;) (declaration "double dStack_278;" primitive_type identifier ;) (declaration "double dStack_270;" primitive_type identifier ;) (declaration "double dStack_260;" primitive_type identifier ;) (declaration "double dStack_258;" primitive_type identifier ;) (declaration "double dStack_250;" primitive_type identifier ;) (declaration "double dStack_248;" primitive_type identifier ;) (declaration "double dStack_240;" primitive_type identifier ;) (declaration "double dStack_238;" primitive_type identifier ;) (declaration "uint uStack_22c;" type_identifier identifier ;) (declaration "MagickBooleanType MStack_1d0;" type_identifier identifier ;) (declaration "int iStack_188;" primitive_type identifier ;) (declaration "PrimitiveInfo *pPStack_e8;" type_identifier (pointer_declarator "*pPStack_e8" * identifier) ;) (declaration "PrimitiveInfo linecap [5];" type_identifier (array_declarator "linecap [5]" identifier [ number_literal ]) ;) (expression_statement "puVar47 = PTR___stack_chk_guard_003a9230;" (assignment_expression "puVar47 = PTR___stack_chk_guard_003a9230" identifier = identifier) ;) (expression_statement "pPStack_e8 = linecap;" (assignment_expression "pPStack_e8 = linecap" identifier = identifier) ;) (expression_statement "image_00 = *(Image **)PTR___stack_chk_guard_003a9230;" (assignment_expression "image_00 = *(Image **)PTR___stack_chk_guard_003a9230" identifier = (pointer_expression "*(Image **)PTR___stack_chk_guard_003a9230" * (cast_expression "(Image **)PTR___stack_chk_guard_003a9230" ( (type_descriptor "Image **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "pPVar18 = primitive_info;" (assignment_expression "pPVar18 = primitive_info" identifier = identifier) ;) (expression_statement "pPVar17 = pPStack_e8;" (assignment_expression "pPVar17 = pPStack_e8" identifier = identifier) ;) (expression_statement "pPVar36 = pPStack_e8;" (assignment_expression "pPVar36 = pPStack_e8" identifier = identifier) ;) (do_statement "do {\n    do {\n      pPVar34 = pPVar17;\n      pPVar29 = pPVar18;\n      pPVar18 = (PrimitiveInfo *)&pPVar29->coordinates;\n      uVar39 = *(undefined4 *)((int)&(pPVar29->point).x + 4);\n      uVar38 = *(undefined4 *)&(pPVar29->point).y;\n      uVar37 = *(undefined4 *)((int)&(pPVar29->point).y + 4);\n      *(undefined4 *)&(pPVar34->point).x = *(undefined4 *)&(pPVar29->point).x;\n      *(undefined4 *)((int)&(pPVar34->point).x + 4) = uVar39;\n      *(undefined4 *)&(pPVar34->point).y = uVar38;\n      *(undefined4 *)((int)&(pPVar34->point).y + 4) = uVar37;\n      pPVar17 = (PrimitiveInfo *)&pPVar34->coordinates;\n    } while (pPVar18 != (PrimitiveInfo *)&primitive_info->closed_subpath);\n    pPVar36 = pPVar36 + 1;\n    PVar5 = pPVar29->primitive;\n    pPVar34->coordinates = *(size_t *)pPVar18;\n    pPVar34->primitive = PVar5;\n    pPVar18 = primitive_info;\n    pPVar17 = pPVar36;\n  } while (pPVar36 != linecap + 4);" do (compound_statement "{\n    do {\n      pPVar34 = pPVar17;\n      pPVar29 = pPVar18;\n      pPVar18 = (PrimitiveInfo *)&pPVar29->coordinates;\n      uVar39 = *(undefined4 *)((int)&(pPVar29->point).x + 4);\n      uVar38 = *(undefined4 *)&(pPVar29->point).y;\n      uVar37 = *(undefined4 *)((int)&(pPVar29->point).y + 4);\n      *(undefined4 *)&(pPVar34->point).x = *(undefined4 *)&(pPVar29->point).x;\n      *(undefined4 *)((int)&(pPVar34->point).x + 4) = uVar39;\n      *(undefined4 *)&(pPVar34->point).y = uVar38;\n      *(undefined4 *)((int)&(pPVar34->point).y + 4) = uVar37;\n      pPVar17 = (PrimitiveInfo *)&pPVar34->coordinates;\n    } while (pPVar18 != (PrimitiveInfo *)&primitive_info->closed_subpath);\n    pPVar36 = pPVar36 + 1;\n    PVar5 = pPVar29->primitive;\n    pPVar34->coordinates = *(size_t *)pPVar18;\n    pPVar34->primitive = PVar5;\n    pPVar18 = primitive_info;\n    pPVar17 = pPVar36;\n  }" { (do_statement "do {\n      pPVar34 = pPVar17;\n      pPVar29 = pPVar18;\n      pPVar18 = (PrimitiveInfo *)&pPVar29->coordinates;\n      uVar39 = *(undefined4 *)((int)&(pPVar29->point).x + 4);\n      uVar38 = *(undefined4 *)&(pPVar29->point).y;\n      uVar37 = *(undefined4 *)((int)&(pPVar29->point).y + 4);\n      *(undefined4 *)&(pPVar34->point).x = *(undefined4 *)&(pPVar29->point).x;\n      *(undefined4 *)((int)&(pPVar34->point).x + 4) = uVar39;\n      *(undefined4 *)&(pPVar34->point).y = uVar38;\n      *(undefined4 *)((int)&(pPVar34->point).y + 4) = uVar37;\n      pPVar17 = (PrimitiveInfo *)&pPVar34->coordinates;\n    } while (pPVar18 != (PrimitiveInfo *)&primitive_info->closed_subpath);" do (compound_statement "{\n      pPVar34 = pPVar17;\n      pPVar29 = pPVar18;\n      pPVar18 = (PrimitiveInfo *)&pPVar29->coordinates;\n      uVar39 = *(undefined4 *)((int)&(pPVar29->point).x + 4);\n      uVar38 = *(undefined4 *)&(pPVar29->point).y;\n      uVar37 = *(undefined4 *)((int)&(pPVar29->point).y + 4);\n      *(undefined4 *)&(pPVar34->point).x = *(undefined4 *)&(pPVar29->point).x;\n      *(undefined4 *)((int)&(pPVar34->point).x + 4) = uVar39;\n      *(undefined4 *)&(pPVar34->point).y = uVar38;\n      *(undefined4 *)((int)&(pPVar34->point).y + 4) = uVar37;\n      pPVar17 = (PrimitiveInfo *)&pPVar34->coordinates;\n    }" { (expression_statement "pPVar34 = pPVar17;" (assignment_expression "pPVar34 = pPVar17" identifier = identifier) ;) (expression_statement "pPVar29 = pPVar18;" (assignment_expression "pPVar29 = pPVar18" identifier = identifier) ;) (expression_statement "pPVar18 = (PrimitiveInfo *)&pPVar29->coordinates;" (assignment_expression "pPVar18 = (PrimitiveInfo *)&pPVar29->coordinates" identifier = (cast_expression "(PrimitiveInfo *)&pPVar29->coordinates" ( (type_descriptor "PrimitiveInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pPVar29->coordinates" & (field_expression "pPVar29->coordinates" identifier -> field_identifier)))) ;) (expression_statement "uVar39 = *(undefined4 *)((int)&(pPVar29->point).x + 4);" (assignment_expression "uVar39 = *(undefined4 *)((int)&(pPVar29->point).x + 4)" identifier = (pointer_expression "*(undefined4 *)((int)&(pPVar29->point).x + 4)" * (cast_expression "(undefined4 *)((int)&(pPVar29->point).x + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pPVar29->point).x + 4)" ( (binary_expression "(int)&(pPVar29->point).x + 4" (cast_expression "(int)&(pPVar29->point).x" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pPVar29->point).x" & (field_expression "(pPVar29->point).x" (parenthesized_expression "(pPVar29->point)" ( (field_expression "pPVar29->point" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar38 = *(undefined4 *)&(pPVar29->point).y;" (assignment_expression "uVar38 = *(undefined4 *)&(pPVar29->point).y" identifier = (pointer_expression "*(undefined4 *)&(pPVar29->point).y" * (cast_expression "(undefined4 *)&(pPVar29->point).y" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pPVar29->point).y" & (field_expression "(pPVar29->point).y" (parenthesized_expression "(pPVar29->point)" ( (field_expression "pPVar29->point" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "uVar37 = *(undefined4 *)((int)&(pPVar29->point).y + 4);" (assignment_expression "uVar37 = *(undefined4 *)((int)&(pPVar29->point).y + 4)" identifier = (pointer_expression "*(undefined4 *)((int)&(pPVar29->point).y + 4)" * (cast_expression "(undefined4 *)((int)&(pPVar29->point).y + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pPVar29->point).y + 4)" ( (binary_expression "(int)&(pPVar29->point).y + 4" (cast_expression "(int)&(pPVar29->point).y" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pPVar29->point).y" & (field_expression "(pPVar29->point).y" (parenthesized_expression "(pPVar29->point)" ( (field_expression "pPVar29->point" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)&(pPVar34->point).x = *(undefined4 *)&(pPVar29->point).x;" (assignment_expression "*(undefined4 *)&(pPVar34->point).x = *(undefined4 *)&(pPVar29->point).x" (pointer_expression "*(undefined4 *)&(pPVar34->point).x" * (cast_expression "(undefined4 *)&(pPVar34->point).x" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pPVar34->point).x" & (field_expression "(pPVar34->point).x" (parenthesized_expression "(pPVar34->point)" ( (field_expression "pPVar34->point" identifier -> field_identifier) )) . field_identifier)))) = (pointer_expression "*(undefined4 *)&(pPVar29->point).x" * (cast_expression "(undefined4 *)&(pPVar29->point).x" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pPVar29->point).x" & (field_expression "(pPVar29->point).x" (parenthesized_expression "(pPVar29->point)" ( (field_expression "pPVar29->point" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "*(undefined4 *)((int)&(pPVar34->point).x + 4) = uVar39;" (assignment_expression "*(undefined4 *)((int)&(pPVar34->point).x + 4) = uVar39" (pointer_expression "*(undefined4 *)((int)&(pPVar34->point).x + 4)" * (cast_expression "(undefined4 *)((int)&(pPVar34->point).x + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pPVar34->point).x + 4)" ( (binary_expression "(int)&(pPVar34->point).x + 4" (cast_expression "(int)&(pPVar34->point).x" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pPVar34->point).x" & (field_expression "(pPVar34->point).x" (parenthesized_expression "(pPVar34->point)" ( (field_expression "pPVar34->point" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)&(pPVar34->point).y = uVar38;" (assignment_expression "*(undefined4 *)&(pPVar34->point).y = uVar38" (pointer_expression "*(undefined4 *)&(pPVar34->point).y" * (cast_expression "(undefined4 *)&(pPVar34->point).y" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pPVar34->point).y" & (field_expression "(pPVar34->point).y" (parenthesized_expression "(pPVar34->point)" ( (field_expression "pPVar34->point" identifier -> field_identifier) )) . field_identifier)))) = identifier) ;) (expression_statement "*(undefined4 *)((int)&(pPVar34->point).y + 4) = uVar37;" (assignment_expression "*(undefined4 *)((int)&(pPVar34->point).y + 4) = uVar37" (pointer_expression "*(undefined4 *)((int)&(pPVar34->point).y + 4)" * (cast_expression "(undefined4 *)((int)&(pPVar34->point).y + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pPVar34->point).y + 4)" ( (binary_expression "(int)&(pPVar34->point).y + 4" (cast_expression "(int)&(pPVar34->point).y" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pPVar34->point).y" & (field_expression "(pPVar34->point).y" (parenthesized_expression "(pPVar34->point)" ( (field_expression "pPVar34->point" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "pPVar17 = (PrimitiveInfo *)&pPVar34->coordinates;" (assignment_expression "pPVar17 = (PrimitiveInfo *)&pPVar34->coordinates" identifier = (cast_expression "(PrimitiveInfo *)&pPVar34->coordinates" ( (type_descriptor "PrimitiveInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pPVar34->coordinates" & (field_expression "pPVar34->coordinates" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(pPVar18 != (PrimitiveInfo *)&primitive_info->closed_subpath)" ( (binary_expression "pPVar18 != (PrimitiveInfo *)&primitive_info->closed_subpath" identifier != (cast_expression "(PrimitiveInfo *)&primitive_info->closed_subpath" ( (type_descriptor "PrimitiveInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&primitive_info->closed_subpath" & (field_expression "primitive_info->closed_subpath" identifier -> field_identifier)))) )) ;) (expression_statement "pPVar36 = pPVar36 + 1;" (assignment_expression "pPVar36 = pPVar36 + 1" identifier = (binary_expression "pPVar36 + 1" identifier + number_literal)) ;) (expression_statement "PVar5 = pPVar29->primitive;" (assignment_expression "PVar5 = pPVar29->primitive" identifier = (field_expression "pPVar29->primitive" identifier -> field_identifier)) ;) (expression_statement "pPVar34->coordinates = *(size_t *)pPVar18;" (assignment_expression "pPVar34->coordinates = *(size_t *)pPVar18" (field_expression "pPVar34->coordinates" identifier -> field_identifier) = (pointer_expression "*(size_t *)pPVar18" * (cast_expression "(size_t *)pPVar18" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pPVar34->primitive = PVar5;" (assignment_expression "pPVar34->primitive = PVar5" (field_expression "pPVar34->primitive" identifier -> field_identifier) = identifier) ;) (expression_statement "pPVar18 = primitive_info;" (assignment_expression "pPVar18 = primitive_info" identifier = identifier) ;) (expression_statement "pPVar17 = pPVar36;" (assignment_expression "pPVar17 = pPVar36" identifier = identifier) ;) }) while (parenthesized_expression "(pPVar36 != linecap + 4)" ( (binary_expression "pPVar36 != linecap + 4" identifier != (binary_expression "linecap + 4" identifier + number_literal)) )) ;) (expression_statement "dVar50 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x47c8);" (assignment_expression "dVar50 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x47c8)" identifier = (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x47c8)" * (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x47c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x47c8)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x47c8" identifier + number_literal) ))))) ;) (expression_statement "linecap[4].primitive = UndefinedPrimitive;" (assignment_expression "linecap[4].primitive = UndefinedPrimitive" (field_expression "linecap[4].primitive" (subscript_expression "linecap[4]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "linecap[0].coordinates = 4;" (assignment_expression "linecap[0].coordinates = 4" (field_expression "linecap[0].coordinates" (subscript_expression "linecap[0]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "linecap[1].point.x = linecap[1].point.x + dVar50;" (assignment_expression "linecap[1].point.x = linecap[1].point.x + dVar50" (field_expression "linecap[1].point.x" (field_expression "linecap[1].point" (subscript_expression "linecap[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) = (binary_expression "linecap[1].point.x + dVar50" (field_expression "linecap[1].point.x" (field_expression "linecap[1].point" (subscript_expression "linecap[1]" identifier [ number_literal ]) . field_identifier) . field_identifier) + identifier)) ;) (expression_statement "linecap[2].point.x = linecap[2].point.x + dVar50;" (assignment_expression "linecap[2].point.x = linecap[2].point.x + dVar50" (field_expression "linecap[2].point.x" (field_expression "linecap[2].point" (subscript_expression "linecap[2]" identifier [ number_literal ]) . field_identifier) . field_identifier) = (binary_expression "linecap[2].point.x + dVar50" (field_expression "linecap[2].point.x" (field_expression "linecap[2].point" (subscript_expression "linecap[2]" identifier [ number_literal ]) . field_identifier) . field_identifier) + identifier)) ;) (expression_statement "linecap[2].point.y = linecap[2].point.y + dVar50;" (assignment_expression "linecap[2].point.y = linecap[2].point.y + dVar50" (field_expression "linecap[2].point.y" (field_expression "linecap[2].point" (subscript_expression "linecap[2]" identifier [ number_literal ]) . field_identifier) . field_identifier) = (binary_expression "linecap[2].point.y + dVar50" (field_expression "linecap[2].point.y" (field_expression "linecap[2].point" (subscript_expression "linecap[2]" identifier [ number_literal ]) . field_identifier) . field_identifier) + identifier)) ;) (expression_statement "linecap[3].point.y = linecap[3].point.y + dVar50;" (assignment_expression "linecap[3].point.y = linecap[3].point.y + dVar50" (field_expression "linecap[3].point.y" (field_expression "linecap[3].point" (subscript_expression "linecap[3]" identifier [ number_literal ]) . field_identifier) . field_identifier) = (binary_expression "linecap[3].point.y + dVar50" (field_expression "linecap[3].point.y" (field_expression "linecap[3].point" (subscript_expression "linecap[3]" identifier [ number_literal ]) . field_identifier) . field_identifier) + identifier)) ;) (expression_statement "MVar6 = DrawPolygonPrimitive(image,draw_info,pPStack_e8,exception);" (assignment_expression "MVar6 = DrawPolygonPrimitive(image,draw_info,pPStack_e8,exception)" identifier = (call_expression "DrawPolygonPrimitive(image,draw_info,pPStack_e8,exception)" identifier (argument_list "(image,draw_info,pPStack_e8,exception)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (image_00 == *(Image **)puVar47) {\n    return MVar6;\n  }" if (parenthesized_expression "(image_00 == *(Image **)puVar47)" ( (binary_expression "image_00 == *(Image **)puVar47" identifier == (pointer_expression "*(Image **)puVar47" * (cast_expression "(Image **)puVar47" ( (type_descriptor "Image **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return MVar6;\n  }" { (return_statement "return MVar6;" return identifier ;) })) (expression_statement "puVar47 = PTR___stack_chk_fail_003a9064;" (assignment_expression "puVar47 = PTR___stack_chk_fail_003a9064" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_003a9064)();" (call_expression "(*(code *)PTR___stack_chk_fail_003a9064)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_003a9064)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_003a9064" * (cast_expression "(code *)PTR___stack_chk_fail_003a9064" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (if_statement "if (image_00->debug != MagickFalse) {\n    (**(code **)(puVar47 + 0x3044d0))\n              (0x80,*(int *)(puVar47 + 0x303bd8) + 0x38b0,*(int *)(puVar47 + 0x303bd8) + 0x45dc,\n               0x168f,*(int *)(puVar47 + 0x303bd8) + 0x3dd8);\n  }" if (parenthesized_expression "(image_00->debug != MagickFalse)" ( (binary_expression "image_00->debug != MagickFalse" (field_expression "image_00->debug" identifier -> field_identifier) != identifier) )) (compound_statement "{\n    (**(code **)(puVar47 + 0x3044d0))\n              (0x80,*(int *)(puVar47 + 0x303bd8) + 0x38b0,*(int *)(puVar47 + 0x303bd8) + 0x45dc,\n               0x168f,*(int *)(puVar47 + 0x303bd8) + 0x3dd8);\n  }" { (expression_statement "(**(code **)(puVar47 + 0x3044d0))\n              (0x80,*(int *)(puVar47 + 0x303bd8) + 0x38b0,*(int *)(puVar47 + 0x303bd8) + 0x45dc,\n               0x168f,*(int *)(puVar47 + 0x303bd8) + 0x3dd8);" (call_expression "(**(code **)(puVar47 + 0x3044d0))\n              (0x80,*(int *)(puVar47 + 0x303bd8) + 0x38b0,*(int *)(puVar47 + 0x303bd8) + 0x45dc,\n               0x168f,*(int *)(puVar47 + 0x303bd8) + 0x3dd8)" (parenthesized_expression "(**(code **)(puVar47 + 0x3044d0))" ( (pointer_expression "**(code **)(puVar47 + 0x3044d0)" * (pointer_expression "*(code **)(puVar47 + 0x3044d0)" * (cast_expression "(code **)(puVar47 + 0x3044d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3044d0)" ( (binary_expression "puVar47 + 0x3044d0" identifier + number_literal) ))))) )) (argument_list "(0x80,*(int *)(puVar47 + 0x303bd8) + 0x38b0,*(int *)(puVar47 + 0x303bd8) + 0x45dc,\n               0x168f,*(int *)(puVar47 + 0x303bd8) + 0x3dd8)" ( number_literal , (binary_expression "*(int *)(puVar47 + 0x303bd8) + 0x38b0" (pointer_expression "*(int *)(puVar47 + 0x303bd8)" * (cast_expression "(int *)(puVar47 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x303bd8)" ( (binary_expression "puVar47 + 0x303bd8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar47 + 0x303bd8) + 0x45dc" (pointer_expression "*(int *)(puVar47 + 0x303bd8)" * (cast_expression "(int *)(puVar47 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x303bd8)" ( (binary_expression "puVar47 + 0x303bd8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar47 + 0x303bd8) + 0x3dd8" (pointer_expression "*(int *)(puVar47 + 0x303bd8)" * (cast_expression "(int *)(puVar47 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x303bd8)" ( (binary_expression "puVar47 + 0x303bd8" identifier + number_literal) )))) + number_literal) ))) ;) })) (expression_statement "draw_info_00 = (DrawInfo *)(**(code **)(puVar47 + 0x3044ec))(0,draw_info);" (assignment_expression "draw_info_00 = (DrawInfo *)(**(code **)(puVar47 + 0x3044ec))(0,draw_info)" identifier = (cast_expression "(DrawInfo *)(**(code **)(puVar47 + 0x3044ec))(0,draw_info)" ( (type_descriptor "DrawInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar47 + 0x3044ec))(0,draw_info)" (parenthesized_expression "(**(code **)(puVar47 + 0x3044ec))" ( (pointer_expression "**(code **)(puVar47 + 0x3044ec)" * (pointer_expression "*(code **)(puVar47 + 0x3044ec)" * (cast_expression "(code **)(puVar47 + 0x3044ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3044ec)" ( (binary_expression "puVar47 + 0x3044ec" identifier + number_literal) ))))) )) (argument_list "(0,draw_info)" ( number_literal , identifier ))))) ;) (expression_statement "pPVar4 = &draw_info_00->fill;" (assignment_expression "pPVar4 = &draw_info_00->fill" identifier = (pointer_expression "&draw_info_00->fill" & (field_expression "draw_info_00->fill" identifier -> field_identifier))) ;) (expression_statement "pPVar21 = &draw_info->stroke;" (assignment_expression "pPVar21 = &draw_info->stroke" identifier = (pointer_expression "&draw_info->stroke" & (field_expression "draw_info->stroke" identifier -> field_identifier))) ;) (do_statement "do {\n    pPVar20 = pPVar21;\n    pPVar7 = pPVar4;\n    pPVar21 = (PixelInfo *)&pPVar20->fuzz;\n    CVar32 = pPVar20->colorspace;\n    PVar31 = pPVar20->alpha_trait;\n    uVar37 = *(undefined4 *)&pPVar20->field_0xc;\n    pPVar7->storage_class = pPVar20->storage_class;\n    pPVar7->colorspace = CVar32;\n    pPVar7->alpha_trait = PVar31;\n    *(undefined4 *)&pPVar7->field_0xc = uVar37;\n    pPVar4 = (PixelInfo *)&pPVar7->fuzz;\n  } while (pPVar21 != (PixelInfo *)&(draw_info->stroke).index);" do (compound_statement "{\n    pPVar20 = pPVar21;\n    pPVar7 = pPVar4;\n    pPVar21 = (PixelInfo *)&pPVar20->fuzz;\n    CVar32 = pPVar20->colorspace;\n    PVar31 = pPVar20->alpha_trait;\n    uVar37 = *(undefined4 *)&pPVar20->field_0xc;\n    pPVar7->storage_class = pPVar20->storage_class;\n    pPVar7->colorspace = CVar32;\n    pPVar7->alpha_trait = PVar31;\n    *(undefined4 *)&pPVar7->field_0xc = uVar37;\n    pPVar4 = (PixelInfo *)&pPVar7->fuzz;\n  }" { (expression_statement "pPVar20 = pPVar21;" (assignment_expression "pPVar20 = pPVar21" identifier = identifier) ;) (expression_statement "pPVar7 = pPVar4;" (assignment_expression "pPVar7 = pPVar4" identifier = identifier) ;) (expression_statement "pPVar21 = (PixelInfo *)&pPVar20->fuzz;" (assignment_expression "pPVar21 = (PixelInfo *)&pPVar20->fuzz" identifier = (cast_expression "(PixelInfo *)&pPVar20->fuzz" ( (type_descriptor "PixelInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pPVar20->fuzz" & (field_expression "pPVar20->fuzz" identifier -> field_identifier)))) ;) (expression_statement "CVar32 = pPVar20->colorspace;" (assignment_expression "CVar32 = pPVar20->colorspace" identifier = (field_expression "pPVar20->colorspace" identifier -> field_identifier)) ;) (expression_statement "PVar31 = pPVar20->alpha_trait;" (assignment_expression "PVar31 = pPVar20->alpha_trait" identifier = (field_expression "pPVar20->alpha_trait" identifier -> field_identifier)) ;) (expression_statement "uVar37 = *(undefined4 *)&pPVar20->field_0xc;" (assignment_expression "uVar37 = *(undefined4 *)&pPVar20->field_0xc" identifier = (pointer_expression "*(undefined4 *)&pPVar20->field_0xc" * (cast_expression "(undefined4 *)&pPVar20->field_0xc" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pPVar20->field_0xc" & (field_expression "pPVar20->field_0xc" identifier -> field_identifier))))) ;) (expression_statement "pPVar7->storage_class = pPVar20->storage_class;" (assignment_expression "pPVar7->storage_class = pPVar20->storage_class" (field_expression "pPVar7->storage_class" identifier -> field_identifier) = (field_expression "pPVar20->storage_class" identifier -> field_identifier)) ;) (expression_statement "pPVar7->colorspace = CVar32;" (assignment_expression "pPVar7->colorspace = CVar32" (field_expression "pPVar7->colorspace" identifier -> field_identifier) = identifier) ;) (expression_statement "pPVar7->alpha_trait = PVar31;" (assignment_expression "pPVar7->alpha_trait = PVar31" (field_expression "pPVar7->alpha_trait" identifier -> field_identifier) = identifier) ;) (expression_statement "*(undefined4 *)&pPVar7->field_0xc = uVar37;" (assignment_expression "*(undefined4 *)&pPVar7->field_0xc = uVar37" (pointer_expression "*(undefined4 *)&pPVar7->field_0xc" * (cast_expression "(undefined4 *)&pPVar7->field_0xc" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pPVar7->field_0xc" & (field_expression "pPVar7->field_0xc" identifier -> field_identifier)))) = identifier) ;) (expression_statement "pPVar4 = (PixelInfo *)&pPVar7->fuzz;" (assignment_expression "pPVar4 = (PixelInfo *)&pPVar7->fuzz" identifier = (cast_expression "(PixelInfo *)&pPVar7->fuzz" ( (type_descriptor "PixelInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pPVar7->fuzz" & (field_expression "pPVar7->fuzz" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(pPVar21 != (PixelInfo *)&(draw_info->stroke).index)" ( (binary_expression "pPVar21 != (PixelInfo *)&(draw_info->stroke).index" identifier != (cast_expression "(PixelInfo *)&(draw_info->stroke).index" ( (type_descriptor "PixelInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(draw_info->stroke).index" & (field_expression "(draw_info->stroke).index" (parenthesized_expression "(draw_info->stroke)" ( (field_expression "draw_info->stroke" identifier -> field_identifier) )) . field_identifier)))) )) ;) (expression_statement "uVar37 = *(undefined4 *)((int)&pPVar20->fuzz + 4);" (assignment_expression "uVar37 = *(undefined4 *)((int)&pPVar20->fuzz + 4)" identifier = (pointer_expression "*(undefined4 *)((int)&pPVar20->fuzz + 4)" * (cast_expression "(undefined4 *)((int)&pPVar20->fuzz + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pPVar20->fuzz + 4)" ( (binary_expression "(int)&pPVar20->fuzz + 4" (cast_expression "(int)&pPVar20->fuzz" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pPVar20->fuzz" & (field_expression "pPVar20->fuzz" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "pIVar25 = draw_info_00->fill_pattern;" (assignment_expression "pIVar25 = draw_info_00->fill_pattern" identifier = (field_expression "draw_info_00->fill_pattern" identifier -> field_identifier)) ;) (expression_statement "*(undefined4 *)&pPVar7->fuzz = *(undefined4 *)pPVar21;" (assignment_expression "*(undefined4 *)&pPVar7->fuzz = *(undefined4 *)pPVar21" (pointer_expression "*(undefined4 *)&pPVar7->fuzz" * (cast_expression "(undefined4 *)&pPVar7->fuzz" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pPVar7->fuzz" & (field_expression "pPVar7->fuzz" identifier -> field_identifier)))) = (pointer_expression "*(undefined4 *)pPVar21" * (cast_expression "(undefined4 *)pPVar21" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)((int)&pPVar7->fuzz + 4) = uVar37;" (assignment_expression "*(undefined4 *)((int)&pPVar7->fuzz + 4) = uVar37" (pointer_expression "*(undefined4 *)((int)&pPVar7->fuzz + 4)" * (cast_expression "(undefined4 *)((int)&pPVar7->fuzz + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pPVar7->fuzz + 4)" ( (binary_expression "(int)&pPVar7->fuzz + 4" (cast_expression "(int)&pPVar7->fuzz" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pPVar7->fuzz" & (field_expression "pPVar7->fuzz" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (if_statement "if (pIVar25 != (Image *)0x0) {\n    pIVar25 = (Image *)(**(code **)(puVar47 + 0x30423c))();\n    draw_info_00->fill_pattern = pIVar25;\n  }" if (parenthesized_expression "(pIVar25 != (Image *)0x0)" ( (binary_expression "pIVar25 != (Image *)0x0" identifier != (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pIVar25 = (Image *)(**(code **)(puVar47 + 0x30423c))();\n    draw_info_00->fill_pattern = pIVar25;\n  }" { (expression_statement "pIVar25 = (Image *)(**(code **)(puVar47 + 0x30423c))();" (assignment_expression "pIVar25 = (Image *)(**(code **)(puVar47 + 0x30423c))()" identifier = (cast_expression "(Image *)(**(code **)(puVar47 + 0x30423c))()" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar47 + 0x30423c))()" (parenthesized_expression "(**(code **)(puVar47 + 0x30423c))" ( (pointer_expression "**(code **)(puVar47 + 0x30423c)" * (pointer_expression "*(code **)(puVar47 + 0x30423c)" * (cast_expression "(code **)(puVar47 + 0x30423c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x30423c)" ( (binary_expression "puVar47 + 0x30423c" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (expression_statement "draw_info_00->fill_pattern = pIVar25;" (assignment_expression "draw_info_00->fill_pattern = pIVar25" (field_expression "draw_info_00->fill_pattern" identifier -> field_identifier) = identifier) ;) })) (if_statement "if (draw_info_00->stroke_pattern != (Image *)0x0) {\n    pIVar25 = (Image *)(**(code **)(puVar47 + 0x304b20))\n                                 (draw_info_00->stroke_pattern,0,0,1,exception);\n    draw_info_00->fill_pattern = pIVar25;\n  }" if (parenthesized_expression "(draw_info_00->stroke_pattern != (Image *)0x0)" ( (binary_expression "draw_info_00->stroke_pattern != (Image *)0x0" (field_expression "draw_info_00->stroke_pattern" identifier -> field_identifier) != (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pIVar25 = (Image *)(**(code **)(puVar47 + 0x304b20))\n                                 (draw_info_00->stroke_pattern,0,0,1,exception);\n    draw_info_00->fill_pattern = pIVar25;\n  }" { (expression_statement "pIVar25 = (Image *)(**(code **)(puVar47 + 0x304b20))\n                                 (draw_info_00->stroke_pattern,0,0,1,exception);" (assignment_expression "pIVar25 = (Image *)(**(code **)(puVar47 + 0x304b20))\n                                 (draw_info_00->stroke_pattern,0,0,1,exception)" identifier = (cast_expression "(Image *)(**(code **)(puVar47 + 0x304b20))\n                                 (draw_info_00->stroke_pattern,0,0,1,exception)" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar47 + 0x304b20))\n                                 (draw_info_00->stroke_pattern,0,0,1,exception)" (parenthesized_expression "(**(code **)(puVar47 + 0x304b20))" ( (pointer_expression "**(code **)(puVar47 + 0x304b20)" * (pointer_expression "*(code **)(puVar47 + 0x304b20)" * (cast_expression "(code **)(puVar47 + 0x304b20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x304b20)" ( (binary_expression "puVar47 + 0x304b20" identifier + number_literal) ))))) )) (argument_list "(draw_info_00->stroke_pattern,0,0,1,exception)" ( (field_expression "draw_info_00->stroke_pattern" identifier -> field_identifier) , number_literal , number_literal , number_literal , identifier ))))) ;) (expression_statement "draw_info_00->fill_pattern = pIVar25;" (assignment_expression "draw_info_00->fill_pattern = pIVar25" (field_expression "draw_info_00->fill_pattern" identifier -> field_identifier) = identifier) ;) })) (expression_statement "PVar5 = pPStack_e8->primitive;" (assignment_expression "PVar5 = pPStack_e8->primitive" identifier = (field_expression "pPStack_e8->primitive" identifier -> field_identifier)) ;) (expression_statement "*(undefined4 *)((int)&(draw_info_00->stroke).alpha + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(draw_info_00->stroke).alpha + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(draw_info_00->stroke).alpha + 4)" * (cast_expression "(undefined4 *)((int)&(draw_info_00->stroke).alpha + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(draw_info_00->stroke).alpha + 4)" ( (binary_expression "(int)&(draw_info_00->stroke).alpha + 4" (cast_expression "(int)&(draw_info_00->stroke).alpha" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(draw_info_00->stroke).alpha" & (field_expression "(draw_info_00->stroke).alpha" (parenthesized_expression "(draw_info_00->stroke)" ( (field_expression "draw_info_00->stroke" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)&(draw_info_00->stroke).alpha = 0;" (assignment_expression "*(undefined4 *)&(draw_info_00->stroke).alpha = 0" (pointer_expression "*(undefined4 *)&(draw_info_00->stroke).alpha" * (cast_expression "(undefined4 *)&(draw_info_00->stroke).alpha" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(draw_info_00->stroke).alpha" & (field_expression "(draw_info_00->stroke).alpha" (parenthesized_expression "(draw_info_00->stroke)" ( (field_expression "draw_info_00->stroke" identifier -> field_identifier) )) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)&draw_info_00->stroke_width + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&draw_info_00->stroke_width + 4) = 0" (pointer_expression "*(undefined4 *)((int)&draw_info_00->stroke_width + 4)" * (cast_expression "(undefined4 *)((int)&draw_info_00->stroke_width + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&draw_info_00->stroke_width + 4)" ( (binary_expression "(int)&draw_info_00->stroke_width + 4" (cast_expression "(int)&draw_info_00->stroke_width" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&draw_info_00->stroke_width" & (field_expression "draw_info_00->stroke_width" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)&draw_info_00->stroke_width = 0;" (assignment_expression "*(undefined4 *)&draw_info_00->stroke_width = 0" (pointer_expression "*(undefined4 *)&draw_info_00->stroke_width" * (cast_expression "(undefined4 *)&draw_info_00->stroke_width" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&draw_info_00->stroke_width" & (field_expression "draw_info_00->stroke_width" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "draw_info_00->fill_rule = NonZeroRule;" (assignment_expression "draw_info_00->fill_rule = NonZeroRule" (field_expression "draw_info_00->fill_rule" identifier -> field_identifier) = identifier) ;) (if_statement "if (PVar5 != UndefinedPrimitive) {\n    iVar8 = *(int *)(puVar47 + 0x303bd0);\n    iVar26 = *(int *)(puVar47 + 0x303bd8);\n    MStack_1d0 = MagickTrue;\n    dVar50 = *(double *)(iVar8 + 0x13f8);\n    iVar22 = *(int *)(puVar47 + 0x303bd0);\n    dVar51 = *(double *)(iVar22 + 0x1410);\n    uVar52 = *(undefined8 *)(iVar26 + 0x34a0);\nLAB_000a4e98:\n    sVar40 = pPStack_e8->coordinates;\n    if (sVar40 == 1) {\n      iVar44 = 0x28;\n      goto LAB_000a6620;\n    }\n    pdVar9 = (double *)(**(code **)(puVar47 + 0x3047fc))(sVar40 + 2,0x28);\n    if (pdVar9 != (double *)0x0) {\n      iVar44 = sVar40 * 0x28;\n      (**(code **)(puVar47 + 0x304648))(pdVar9,pPStack_e8,iVar44);\n      pdVar11 = pdVar9 + sVar40 * 5;\n      if ((ABS(pPStack_e8[sVar40 - 1].point.x - (pPStack_e8->point).x) < dVar50) &&\n         (ABS(pPStack_e8[sVar40 - 1].point.y - (pPStack_e8->point).y) < dVar50)) {\n        if (draw_info->linejoin - MiterJoin < 2) {\n          pPVar18 = pPStack_e8 + 1;\n          do {\n            pdVar12 = pdVar11;\n            pPVar17 = pPVar18;\n            pPVar18 = (PrimitiveInfo *)&pPVar17->coordinates;\n            sVar24 = *(size_t *)&(pPVar17->point).y;\n            sVar49 = *(size_t *)((int)&(pPVar17->point).y + 4);\n            sVar35 = *(size_t *)&(pPVar17->point).x;\n            *(size_t *)((int)pdVar12 + 4) = *(size_t *)((int)&(pPVar17->point).x + 4);\n            *(size_t *)(pdVar12 + 1) = sVar24;\n            *(size_t *)pdVar12 = sVar35;\n            *(size_t *)((int)pdVar12 + 0xc) = sVar49;\n            pdVar11 = pdVar12 + 2;\n          } while (pPVar18 != (PrimitiveInfo *)&pPStack_e8[1].closed_subpath);\n          iVar44 = iVar44 + 0x28;\n          sVar49 = *(size_t *)pPVar18;\n          pdVar11 = pdVar9 + sVar40 * 5 + 5;\n          *(PrimitiveType *)((int)pdVar12 + 0x14) = pPVar17->primitive;\n          *(size_t *)(pdVar12 + 2) = sVar49;\n          sVar40 = sVar40 + 1;\n        }\n        iStack_188 = 1;\n        bVar2 = true;\n        bVar1 = (int)sVar40 < 2;\n        *(size_t *)((int)pdVar11 + 0x14) = 0;\n        if (bVar1) goto LAB_000a6124;\nLAB_000a4fe8:\n        dVar72 = *(double *)(iVar8 + 0x13f8);\n        dStack_260 = pdVar9[5] - *pdVar9;\n        dStack_258 = pdVar9[6] - pdVar9[1];\n        if ((dVar72 <= ABS(dStack_260)) || (dVar72 <= ABS(dStack_258))) {\n          sVar49 = 1;\n        }\n        else {\n          sVar49 = 1;\n          pdVar11 = pdVar9 + 10;\n          do {\n            sVar49 = sVar49 + 1;\n            if (sVar49 == sVar40) {\n              LVar23 = draw_info->linecap;\n              sVar49 = sVar40;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar11 - *pdVar9;\n            dStack_258 = pdVar11[1] - pdVar9[1];\n          } while ((ABS(dStack_260) < dVar72) && (pdVar11 = pdVar11 + 5, ABS(dStack_258) < dVar72));\n        }\nLAB_000a5110:\n        uVar10 = sVar40 * 2;\n        pdVar11 = (double *)(**(code **)(puVar47 + 0x3047fc))(uVar10 + 0x618,0x10);\n        pdVar12 = (double *)(**(code **)(puVar47 + 0x3047fc))(uVar10 + 0x618,0x10);\n        if (pdVar11 == (double *)0x0) {\n          if (pdVar12 != (double *)0x0) {\n            (**(code **)(puVar47 + 0x3042b0))(pdVar12);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar47 + 0x3042b0))(pdVar9);\n          uVar37 = 0x1c93;\n          goto LAB_000a5724;\n        }\n        if (pdVar12 == (double *)0x0) {\n          (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n          goto LAB_000a6cbc;\n        }\n        if (ABS(dStack_260) < *(double *)(iVar8 + 0x13f8)) {\n          dVar72 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar63 = *(double *)(iVar13 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar63 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n        }\n        else if (ABS(dStack_258) < *(double *)(iVar8 + 0x13f8)) {\n          dVar63 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar72 = *(double *)(iVar13 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar63 = dStack_258 / dStack_260;\n          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a78) / dVar63;\n        }\nLAB_000a51b0:\n        dVar53 = (double)(**(code **)(puVar47 + 0x304288))(&draw_info->affine);\n        iVar13 = draw_info->miterlimit * draw_info->miterlimit;\n        dVar53 = dVar53 * draw_info->stroke_width *\n                 *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1400);\n        dVar57 = (double)iVar13;\n        if (iVar13 < 0) {\n          dVar57 = dVar57 + *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1418);\n        }\n        dVar57 = dVar57 * dVar53 * dVar53;\n        if (draw_info->linecap == SquareCap) {\n          iVar13 = *(int *)(puVar47 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar54 = 0.0;\n              if (sVar40 == 1) {\n                dVar64 = 0.0;\n                sVar35 = 1;\nLAB_000a6998:\n                pdVar16 = pdVar9 + (sVar35 - 1) * 5;\n              }\n              else {\n                pdVar16 = pdVar9 + 5;\n                dVar64 = 0.0;\n              }\n            }\n            else {\n              dVar75 = *(double *)(iVar8 + 0x13f8);\n              dVar64 = *pdVar9 - pdVar9[5];\n              dVar54 = pdVar9[1] - pdVar9[6];\n              if ((dVar75 <= ABS(dVar64)) || (dVar75 <= ABS(dVar54))) {\n                pdVar16 = pdVar9 + 5;\n              }\n              else {\n                sVar24 = 1;\n                pdVar28 = pdVar9 + 10;\n                do {\n                  pdVar16 = pdVar28;\n                  sVar24 = sVar24 + 1;\n                  sVar35 = sVar40;\n                  if (sVar24 == sVar40) goto LAB_000a6998;\n                  dVar64 = *pdVar9 - *pdVar16;\n                  dVar54 = pdVar9[1] - pdVar16[1];\n                } while ((ABS(dVar64) < dVar75) && (pdVar28 = pdVar16 + 5, ABS(dVar54) < dVar75));\n              }\n            }\n            dVar75 = (double)(**(code **)(puVar47 + 0x304a08))(dVar64,dVar54);\n            iVar13 = sVar40 - 2;\n            dVar61 = pdVar16[1];\n            pdVar43 = (double *)((int)pdVar9 + iVar44 + -0x28);\n            pdVar28 = pdVar9 + iVar13 * 5;\n            *pdVar9 = *pdVar16 + (dVar64 * (dVar53 + dVar75)) / dVar75;\n            pdVar9[1] = dVar61 + (dVar54 * (dVar53 + dVar75)) / dVar75;\n            if (-1 < iVar13) {\n              dVar75 = *(double *)(iVar8 + 0x13f8);\n              dVar64 = *pdVar43 - *pdVar28;\n              dVar54 = pdVar43[1] - pdVar28[1];\n              if (ABS(dVar64) < dVar75) {\n                pdVar16 = pdVar9 + (sVar40 - 3) * 5;\n                do {\n                  pdVar28 = pdVar16;\n                  if (dVar75 <= ABS(dVar54)) {\n                    pdVar28 = pdVar9 + iVar13 * 5;\n                    break;\n                  }\n                  iVar13 = iVar13 + -1;\n                  if (iVar13 == -1) break;\n                  dVar64 = *pdVar43 - *pdVar28;\n                  dVar54 = pdVar43[1] - pdVar28[1];\n                  pdVar16 = pdVar28 + -5;\n                } while (ABS(dVar64) < dVar75);\n              }\n            }\n            dVar75 = (double)(**(code **)(puVar47 + 0x304a08))(dVar64,dVar54);\n            dVar61 = pdVar28[1];\n            *pdVar43 = *pdVar28 + (dVar64 * (dVar53 + dVar75)) / dVar75;\n            pdVar43[1] = dVar61 + (dVar54 * (dVar53 + dVar75)) / dVar75;\n            goto LAB_000a5220;\n          }\n        }\n        else {\nLAB_000a5220:\n          iVar13 = *(int *)(puVar47 + 0x303bd0);\n        }\n        dVar54 = dVar53 * dVar53;\n        dVar64 = dVar54 / (dVar72 * dVar72 + *(double *)(iVar13 + 0x1438));\n        dVar75 = SQRT(dVar64);\n        if (dVar64 < 0.0) {\n          (**(code **)(puVar47 + 0x304770))();\n        }\n        dVar72 = dVar72 * dVar75;\n        pdVar16 = pdVar9 + sVar49 * 5;\n        dVar69 = *pdVar16;\n        dVar73 = pdVar16[1];\n        dVar68 = dVar72 + pdVar9[1];\n        dVar66 = pdVar9[1] - dVar72;\n        dVar64 = dVar75 + *pdVar9;\n        dStack_238 = dVar73 - dVar72;\n        dStack_240 = dVar69 - dVar75;\n        dVar67 = *pdVar9 - dVar75;\n        dVar62 = dVar67;\n        dVar61 = dVar68;\n        dStack_250 = dVar75 + dVar69;\n        dStack_248 = dVar72 + dVar73;\n        if (0.0 < dVar75 * dStack_258 - dVar72 * dStack_260) {\n          dVar62 = dVar64;\n          dVar61 = dVar66;\n          dVar64 = dVar67;\n          dVar66 = dVar68;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar75 + dVar69;\n          dStack_238 = dVar72 + dVar73;\n        }\n        sVar35 = sVar49 + 1;\n        *pdVar12 = dVar62;\n        pdVar12[1] = dVar66;\n        *pdVar11 = dVar64;\n        pdVar11[1] = dVar61;\n        if ((int)sVar35 < (int)sVar40) {\n          iVar27 = *(int *)(puVar47 + 0x303bd8);\n          iVar44 = 1;\n          iVar46 = 1;\n          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a78);\n          dVar75 = *(double *)(*(int *)(puVar47 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar10;\n          do {\n            dVar55 = pdVar16[6];\n            dVar58 = pdVar16[5];\n            dVar59 = dVar55 - dVar73;\n            dVar65 = dVar58 - dVar69;\n            dVar60 = dVar58 - dVar69;\n            dVar67 = dStack_238;\n            dVar68 = dStack_240;\n            dVar70 = dStack_248;\n            dVar74 = dStack_250;\n            if (*(double *)(iVar27 + -0x2e38) <=\n                dVar65 * dVar65 + (dVar55 - dVar73) * (dVar55 - dVar73)) {\n              if (ABS(dVar65) < *(double *)(iVar8 + 0x13f8)) {\n                dVar67 = 0.0;\n                dVar68 = dVar54;\n                if (0.0 <= dVar65) {\n                  if (0.0 <= dVar55 - dVar73) goto LAB_000a53e0;\n                }\n                else if (dVar55 - dVar73 < 0.0) {\nLAB_000a53e0:\n                  dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar59) < *(double *)(iVar8 + 0x13f8)) {\n                dVar65 = 0.0;\n                dVar68 = dVar54 / dVar75;\n                if (0.0 <= dVar55 - dVar73) {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (dVar58 - dVar69 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (0.0 <= dVar58 - dVar69) {\nLAB_000a5880:\n                    dVar67 = *(double *)(iVar30 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar67 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar65 = (dVar55 - dVar73) / (dVar58 - dVar69);\n                dVar67 = dVar72 / dVar65;\n                dVar68 = dVar54 / (dVar67 * dVar67 + *(double *)(iVar13 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar28 = pdVar9 + sVar49 * 5;\n              dVar70 = SQRT(dVar68);\n              if (dVar68 < 0.0) {\n                (**(code **)(puVar47 + 0x304770))();\n                dVar69 = *pdVar28;\n                dVar73 = pdVar28[1];\n                dVar58 = pdVar16[5];\n                dVar55 = pdVar16[6];\n              }\n              dVar67 = dVar67 * dVar70;\n              dStack_2a8 = dVar58 - dVar70;\n              dStack_2a0 = dVar55 - dVar67;\n              dStack_278 = dVar69 - dVar70;\n              dStack_270 = dVar73 - dVar67;\n              dStack_2b8 = dVar70 + dVar58;\n              dStack_2b0 = dVar67 + dVar55;\n              dStack_288 = dVar70 + dVar69;\n              dStack_280 = dVar67 + dVar73;\n              if (0.0 < dVar59 * dVar70 - dVar60 * dVar67) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar70 + dVar58;\n                dStack_2a0 = dVar67 + dVar55;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar70 + dVar69;\n                dStack_270 = dVar67 + dVar73;\n              }\n              dVar67 = dVar63 - dVar65;\n              dVar69 = dStack_250;\n              dVar73 = dStack_248;\n              dVar55 = dStack_238;\n              dVar58 = dStack_240;\n              if (*(double *)(iVar8 + 0x13f8) <= ABS(dVar67)) {\n                dVar69 = (((dVar64 * dVar63 - dVar61) - dVar65 * dStack_2b8) + dStack_2b0) / dVar67;\n                dVar58 = (((dVar63 * dVar62 - dVar66) - dVar65 * dStack_2a8) + dStack_2a0) / dVar67;\n                dVar73 = (dVar69 - dVar64) * dVar63 + dVar61;\n                dVar55 = (dVar58 - dVar62) * dVar63 + dVar66;\n              }\n              if ((int)uStack_22c <= iVar46 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar11 = (double *)\n                            (**(code **)(puVar47 + 0x304710))(pdVar11,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                }\n              }\n              if (iVar44 + 0x618 < (int)uVar10) {\n                if (pdVar11 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a5710:\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar10) {\n                  pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  if (pdVar11 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar12 != (double *)0x0) goto LAB_000a5700;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar48)(pdVar9);\n                  uVar37 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar12 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                uVar10 = uVar10 + 0x618;\n                if (pdVar11 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar12 == (double *)0x0) {\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  goto LAB_000a5710;\n                }\n              }\n              LVar14 = draw_info->linejoin;\n              dVar62 = dStack_278;\n              dVar61 = dStack_280;\n              dVar64 = dStack_288;\n              dVar66 = dStack_270;\n              sVar49 = sVar35;\n              dVar63 = dVar65;\n              if (dVar60 * dStack_258 - dVar59 * dStack_260 <= 0.0) {\n                if (LVar14 != RoundJoin) {\n                  if (LVar14 == BevelJoin) {\n                    pdVar28 = pdVar11 + iVar46 * 2;\n                    pdVar12[iVar44 * 2] = dStack_240;\n                    (pdVar12 + iVar44 * 2)[1] = dStack_238;\n                    pdVar12[iVar44 * 2 + 2] = dStack_278;\n                    (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if (dVar57 < (dVar58 - dVar69) * (dVar58 - dVar69) +\n                                   (dVar55 - dVar73) * (dVar55 - dVar73)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar44 = iVar44 + 1;\n                      iVar46 = iVar46 + 1;\n                      *pdVar43 = dVar58;\n                      pdVar43[1] = dVar55;\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar30 = iVar46 + 1;\n                pdVar43 = pdVar11 + iVar46 * 2;\n                if ((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57) {\n                  *pdVar43 = dVar69;\n                  pdVar43[1] = dVar73;\n                }\n                else {\n                  iVar30 = iVar46 + 2;\n                  *pdVar43 = dStack_250;\n                  pdVar43[1] = dStack_248;\n                  pdVar11[iVar46 * 2 + 2] = dStack_288;\n                  (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                }\n                dVar69 = *pdVar28;\n                dVar68 = pdVar28[1];\n                dVar63 = dVar68;\n                dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_238 - dVar68,dStack_240 - dVar69);\n                dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_270 - dVar63,dStack_278 - dVar69);\n                if (dVar63 < dVar67) {\n                  dVar63 = dVar63 + *(double *)(iVar26 + 0x34a0);\n                }\n                dVar63 = dVar63 - dVar67;\n                dVar73 = *(double *)(iVar13 + 0x1438) / dVar53;\n                dVar70 = SQRT(dVar73);\n                if (dVar73 < 0.0) {\n                  (**(code **)(puVar47 + 0x304770))();\n                }\n                dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar63 / (dVar70 + dVar70));\n                dVar70 = *(double *)(iVar22 + 0x1410);\n                if (dVar73 < dVar70) {\n                  uVar42 = (uint)dVar73;\n                }\n                else {\n                  uVar42 = (int)(dVar73 - dVar70) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar30 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar46 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar11,iVar46,0x10);\n                  }\n                  else {\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  }\n                }\n                if (uVar42 + 0x618 < 0x4000001) {\n                  if ((int)uVar10 <= (int)(iVar44 + 0x618 + uVar42)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uVar10 < uVar42 + 0x618) goto LAB_000a67d4;\n                    iVar46 = uVar42 + uVar10;\n                    uVar10 = iVar46 + 0x618;\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,iVar46 + 0xc30,0x10);\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar11 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a6d2c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar12 = (double *)(*pcVar48)(pdVar12);\nLAB_000a64c4:\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a6884;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar28 = pdVar12 + iVar44 * 2;\n                *pdVar28 = dStack_240;\n                pdVar28[1] = dStack_238;\n                if (1 < (int)uVar42) {\n                  uVar71 = *(undefined8 *)(iVar26 + 0x34a0);\n                  uVar41 = 1;\n                  do {\n                    uVar45 = uVar41 + 1;\n                    dVar70 = ((double)(int)uVar41 * dVar63) / (double)(int)uVar42 + dVar67;\n                    uVar56 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar56);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar69;\n                    uVar56 = (*pcVar48)(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar56);\n                    pdVar28[3] = dVar53 * dVar73 + dVar68;\n                    uVar41 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar42);\n                }\n                *pdVar12 = dStack_278;\n                pdVar12[1] = dStack_270;\n                dStack_258 = dVar59;\n                dStack_260 = dVar60;\n                dVar67 = dStack_2a0;\n                dVar68 = dStack_2a8;\n                dVar70 = dStack_2b0;\n                dVar74 = dStack_2b8;\n                iVar44 = 1;\n                iVar46 = iVar30;\n                dVar63 = dVar65;\n              }\n              else {\n                if (LVar14 != RoundJoin) {\n                  if (LVar14 == BevelJoin) {\n                    iVar30 = iVar46 * 2;\n                    iVar3 = iVar46 * 2;\n                    iVar46 = iVar46 + 2;\n                    pdVar11[iVar30] = dStack_250;\n                    (pdVar11 + iVar30)[1] = dStack_248;\n                    pdVar28 = pdVar12 + iVar44 * 2;\n                    pdVar11[iVar3 + 2] = dStack_288;\n                    (pdVar11 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar58;\n                      pdVar28[1] = dVar55;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_240;\n                      pdVar28[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                          (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar43 = dStack_240;\n                      pdVar43[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar30 = iVar44 + 1;\n                pdVar43 = pdVar12 + iVar44 * 2;\n                if ((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57) {\n                  *pdVar43 = dVar58;\n                  pdVar43[1] = dVar55;\n                }\n                else {\n                  iVar30 = iVar44 + 2;\n                  *pdVar43 = dStack_240;\n                  pdVar43[1] = dStack_238;\n                  pdVar12[iVar44 * 2 + 2] = dStack_278;\n                  (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                }\n                dVar68 = *pdVar28;\n                dVar69 = pdVar28[1];\n                dVar63 = dVar68;\n                dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_248 - dVar69,dStack_250 - dVar68);\n                dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_280 - dVar69,dStack_288 - dVar63);\n                if (dVar67 < dVar63) {\n                  dVar67 = dVar67 + *(double *)(iVar26 + 0x34a0);\n                }\n                dVar73 = dVar67 - dVar63;\n                dVar70 = *(double *)(iVar13 + 0x1438) / dVar53;\n                dVar74 = SQRT(dVar70);\n                if (dVar70 < 0.0) {\n                  (**(code **)(puVar47 + 0x304770))();\n                }\n                dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar73 / (dVar74 + dVar74));\n                if (dVar73 < dVar51) {\n                  uVar41 = (uint)dVar73;\n                  uVar42 = uVar41 + 0x618;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                  if (uVar42 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar11 = (double *)(*pcVar48)(pdVar11);\n                }\n                else {\n                  uVar41 = (int)(dVar73 - dVar51) | 0x80000000;\n                  uVar42 = uVar41 + 0x618;\n                  if (0x4000000 < uVar42) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar46 + 0x618 + uVar41)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uStack_22c < uVar42) goto LAB_000a66a4;\n                    iVar44 = uStack_22c + uVar41;\n                    uStack_22c = iVar44 + 0x618;\n                    pdVar11 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar11,iVar44 + 0xc30,0x10);\n                  }\n                }\n                if (iVar30 + 0x618 < (int)uVar10) {\n                  if (pdVar11 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a665c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar10 < 0xfffff9e8) {\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                    uVar10 = uVar10 + 0x618;\n                  }\n                  else {\n                    pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  }\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a664c;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar28 = pdVar11 + iVar46 * 2;\n                *pdVar28 = dStack_250;\n                pdVar28[1] = dStack_248;\n                if (1 < (int)uVar41) {\n                  dVar63 = dVar63 - dVar67;\n                  uVar42 = 1;\n                  do {\n                    uVar45 = uVar42 + 1;\n                    dVar70 = ((double)(int)uVar42 * dVar63) / (double)(int)uVar41 + dVar67;\n                    uVar71 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar71);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar68;\n                    uVar71 = (*pcVar48)(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar71);\n                    pdVar28[3] = dVar53 * dVar73 + dVar69;\n                    uVar42 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar41);\n                }\n                *pdVar11 = dStack_288;\n                pdVar11[1] = dStack_280;\n                dStack_258 = dVar59;\n                dStack_260 = dVar60;\n                dVar67 = dStack_2a0;\n                dVar68 = dStack_2a8;\n                dVar70 = dStack_2b0;\n                dVar74 = dStack_2b8;\n                iVar44 = iVar30;\n                iVar46 = 1;\n                dVar63 = dVar65;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar74;\n            dStack_248 = dVar70;\n            dStack_240 = dVar68;\n            dStack_238 = dVar67;\n            if (sVar35 + 1 == sVar40) goto LAB_000a5a58;\n            pdVar16 = pdVar16 + 5;\n            sVar35 = sVar35 + 1;\n            dVar69 = pdVar9[sVar49 * 5];\n            dVar73 = (pdVar9 + sVar49 * 5)[1];\n          } while( true );\n        }\n        iVar44 = 4;\n        iVar27 = 0x10;\n        iVar46 = 0x10;\n        iVar13 = 2;\n        goto LAB_000a5a70;\n      }\n      bVar1 = (int)sVar40 < 2;\n      iStack_188 = 0;\n      bVar2 = false;\n      *(size_t *)((int)pdVar11 + 0x14) = 0;\n      if (!bVar1) goto LAB_000a4fe8;\nLAB_000a6124:\n      if (sVar40 != 1) {\n        sVar49 = 1;\n        dStack_258 = 0.0;\n        dStack_260 = 0.0;\n        goto LAB_000a5110;\n      }\n      sVar49 = 1;\n      dStack_258 = 0.0;\n      LVar23 = draw_info->linecap;\n      dStack_260 = 0.0;\njoined_r0x000a50f8:\n      if (LVar23 == RoundCap) {\n        pcVar48 = *(code **)(puVar47 + 0x304644);\n        if (!bVar2) {\n          sVar49 = sVar49 - 1;\n          goto LAB_000a5110;\n        }\n      }\n      else {\n        pcVar48 = *(code **)(puVar47 + 0x304644);\n      }\n      pPVar18 = (PrimitiveInfo *)(*pcVar48)(0x28);\n      pdVar11 = pdVar9;\n      pPVar17 = pPVar18;\n      do {\n        pPVar36 = pPVar17;\n        pdVar12 = pdVar11;\n        pdVar11 = pdVar12 + 2;\n        sVar35 = *(size_t *)((int)pdVar12 + 4);\n        sVar49 = *(size_t *)(pdVar12 + 1);\n        sVar40 = *(size_t *)((int)pdVar12 + 0xc);\n        *(size_t *)&(pPVar36->point).x = *(size_t *)pdVar12;\n        *(size_t *)((int)&(pPVar36->point).x + 4) = sVar35;\n        *(size_t *)&(pPVar36->point).y = sVar49;\n        *(size_t *)((int)&(pPVar36->point).y + 4) = sVar40;\n        pPVar17 = (PrimitiveInfo *)&pPVar36->coordinates;\n      } while (pdVar11 != pdVar9 + 4);\n      PVar5 = *(PrimitiveType *)((int)pdVar12 + 0x14);\n      pcVar48 = *(code **)(puVar47 + 0x3042b0);\n      pPVar36->coordinates = *(size_t *)pdVar11;\n      pPVar36->primitive = PVar5;\n      pPVar18->coordinates = 0;\n      (*pcVar48)(pdVar9);\n      goto LAB_000a61cc;\n    }\n    uVar37 = 0x1c57;\nLAB_000a5724:\n    (**(code **)(puVar47 + 0x304210))\n              (exception,*(int *)(puVar47 + 0x303bd8) + 0x38b0,*(int *)(puVar47 + 0x303bd8) + 0x45c8\n               ,uVar37,400,*(int *)(puVar47 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar47 + 0x303bd0) + 0x3e28,*(int *)(puVar47 + 0x303bd4) + -0x3688);\n    MStack_1d0 = MagickFalse;\n    goto LAB_000a5774;\n  }" if (parenthesized_expression "(PVar5 != UndefinedPrimitive)" ( (binary_expression "PVar5 != UndefinedPrimitive" identifier != identifier) )) (compound_statement "{\n    iVar8 = *(int *)(puVar47 + 0x303bd0);\n    iVar26 = *(int *)(puVar47 + 0x303bd8);\n    MStack_1d0 = MagickTrue;\n    dVar50 = *(double *)(iVar8 + 0x13f8);\n    iVar22 = *(int *)(puVar47 + 0x303bd0);\n    dVar51 = *(double *)(iVar22 + 0x1410);\n    uVar52 = *(undefined8 *)(iVar26 + 0x34a0);\nLAB_000a4e98:\n    sVar40 = pPStack_e8->coordinates;\n    if (sVar40 == 1) {\n      iVar44 = 0x28;\n      goto LAB_000a6620;\n    }\n    pdVar9 = (double *)(**(code **)(puVar47 + 0x3047fc))(sVar40 + 2,0x28);\n    if (pdVar9 != (double *)0x0) {\n      iVar44 = sVar40 * 0x28;\n      (**(code **)(puVar47 + 0x304648))(pdVar9,pPStack_e8,iVar44);\n      pdVar11 = pdVar9 + sVar40 * 5;\n      if ((ABS(pPStack_e8[sVar40 - 1].point.x - (pPStack_e8->point).x) < dVar50) &&\n         (ABS(pPStack_e8[sVar40 - 1].point.y - (pPStack_e8->point).y) < dVar50)) {\n        if (draw_info->linejoin - MiterJoin < 2) {\n          pPVar18 = pPStack_e8 + 1;\n          do {\n            pdVar12 = pdVar11;\n            pPVar17 = pPVar18;\n            pPVar18 = (PrimitiveInfo *)&pPVar17->coordinates;\n            sVar24 = *(size_t *)&(pPVar17->point).y;\n            sVar49 = *(size_t *)((int)&(pPVar17->point).y + 4);\n            sVar35 = *(size_t *)&(pPVar17->point).x;\n            *(size_t *)((int)pdVar12 + 4) = *(size_t *)((int)&(pPVar17->point).x + 4);\n            *(size_t *)(pdVar12 + 1) = sVar24;\n            *(size_t *)pdVar12 = sVar35;\n            *(size_t *)((int)pdVar12 + 0xc) = sVar49;\n            pdVar11 = pdVar12 + 2;\n          } while (pPVar18 != (PrimitiveInfo *)&pPStack_e8[1].closed_subpath);\n          iVar44 = iVar44 + 0x28;\n          sVar49 = *(size_t *)pPVar18;\n          pdVar11 = pdVar9 + sVar40 * 5 + 5;\n          *(PrimitiveType *)((int)pdVar12 + 0x14) = pPVar17->primitive;\n          *(size_t *)(pdVar12 + 2) = sVar49;\n          sVar40 = sVar40 + 1;\n        }\n        iStack_188 = 1;\n        bVar2 = true;\n        bVar1 = (int)sVar40 < 2;\n        *(size_t *)((int)pdVar11 + 0x14) = 0;\n        if (bVar1) goto LAB_000a6124;\nLAB_000a4fe8:\n        dVar72 = *(double *)(iVar8 + 0x13f8);\n        dStack_260 = pdVar9[5] - *pdVar9;\n        dStack_258 = pdVar9[6] - pdVar9[1];\n        if ((dVar72 <= ABS(dStack_260)) || (dVar72 <= ABS(dStack_258))) {\n          sVar49 = 1;\n        }\n        else {\n          sVar49 = 1;\n          pdVar11 = pdVar9 + 10;\n          do {\n            sVar49 = sVar49 + 1;\n            if (sVar49 == sVar40) {\n              LVar23 = draw_info->linecap;\n              sVar49 = sVar40;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar11 - *pdVar9;\n            dStack_258 = pdVar11[1] - pdVar9[1];\n          } while ((ABS(dStack_260) < dVar72) && (pdVar11 = pdVar11 + 5, ABS(dStack_258) < dVar72));\n        }\nLAB_000a5110:\n        uVar10 = sVar40 * 2;\n        pdVar11 = (double *)(**(code **)(puVar47 + 0x3047fc))(uVar10 + 0x618,0x10);\n        pdVar12 = (double *)(**(code **)(puVar47 + 0x3047fc))(uVar10 + 0x618,0x10);\n        if (pdVar11 == (double *)0x0) {\n          if (pdVar12 != (double *)0x0) {\n            (**(code **)(puVar47 + 0x3042b0))(pdVar12);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar47 + 0x3042b0))(pdVar9);\n          uVar37 = 0x1c93;\n          goto LAB_000a5724;\n        }\n        if (pdVar12 == (double *)0x0) {\n          (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n          goto LAB_000a6cbc;\n        }\n        if (ABS(dStack_260) < *(double *)(iVar8 + 0x13f8)) {\n          dVar72 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar63 = *(double *)(iVar13 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar63 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n        }\n        else if (ABS(dStack_258) < *(double *)(iVar8 + 0x13f8)) {\n          dVar63 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar72 = *(double *)(iVar13 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar63 = dStack_258 / dStack_260;\n          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a78) / dVar63;\n        }\nLAB_000a51b0:\n        dVar53 = (double)(**(code **)(puVar47 + 0x304288))(&draw_info->affine);\n        iVar13 = draw_info->miterlimit * draw_info->miterlimit;\n        dVar53 = dVar53 * draw_info->stroke_width *\n                 *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1400);\n        dVar57 = (double)iVar13;\n        if (iVar13 < 0) {\n          dVar57 = dVar57 + *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1418);\n        }\n        dVar57 = dVar57 * dVar53 * dVar53;\n        if (draw_info->linecap == SquareCap) {\n          iVar13 = *(int *)(puVar47 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar54 = 0.0;\n              if (sVar40 == 1) {\n                dVar64 = 0.0;\n                sVar35 = 1;\nLAB_000a6998:\n                pdVar16 = pdVar9 + (sVar35 - 1) * 5;\n              }\n              else {\n                pdVar16 = pdVar9 + 5;\n                dVar64 = 0.0;\n              }\n            }\n            else {\n              dVar75 = *(double *)(iVar8 + 0x13f8);\n              dVar64 = *pdVar9 - pdVar9[5];\n              dVar54 = pdVar9[1] - pdVar9[6];\n              if ((dVar75 <= ABS(dVar64)) || (dVar75 <= ABS(dVar54))) {\n                pdVar16 = pdVar9 + 5;\n              }\n              else {\n                sVar24 = 1;\n                pdVar28 = pdVar9 + 10;\n                do {\n                  pdVar16 = pdVar28;\n                  sVar24 = sVar24 + 1;\n                  sVar35 = sVar40;\n                  if (sVar24 == sVar40) goto LAB_000a6998;\n                  dVar64 = *pdVar9 - *pdVar16;\n                  dVar54 = pdVar9[1] - pdVar16[1];\n                } while ((ABS(dVar64) < dVar75) && (pdVar28 = pdVar16 + 5, ABS(dVar54) < dVar75));\n              }\n            }\n            dVar75 = (double)(**(code **)(puVar47 + 0x304a08))(dVar64,dVar54);\n            iVar13 = sVar40 - 2;\n            dVar61 = pdVar16[1];\n            pdVar43 = (double *)((int)pdVar9 + iVar44 + -0x28);\n            pdVar28 = pdVar9 + iVar13 * 5;\n            *pdVar9 = *pdVar16 + (dVar64 * (dVar53 + dVar75)) / dVar75;\n            pdVar9[1] = dVar61 + (dVar54 * (dVar53 + dVar75)) / dVar75;\n            if (-1 < iVar13) {\n              dVar75 = *(double *)(iVar8 + 0x13f8);\n              dVar64 = *pdVar43 - *pdVar28;\n              dVar54 = pdVar43[1] - pdVar28[1];\n              if (ABS(dVar64) < dVar75) {\n                pdVar16 = pdVar9 + (sVar40 - 3) * 5;\n                do {\n                  pdVar28 = pdVar16;\n                  if (dVar75 <= ABS(dVar54)) {\n                    pdVar28 = pdVar9 + iVar13 * 5;\n                    break;\n                  }\n                  iVar13 = iVar13 + -1;\n                  if (iVar13 == -1) break;\n                  dVar64 = *pdVar43 - *pdVar28;\n                  dVar54 = pdVar43[1] - pdVar28[1];\n                  pdVar16 = pdVar28 + -5;\n                } while (ABS(dVar64) < dVar75);\n              }\n            }\n            dVar75 = (double)(**(code **)(puVar47 + 0x304a08))(dVar64,dVar54);\n            dVar61 = pdVar28[1];\n            *pdVar43 = *pdVar28 + (dVar64 * (dVar53 + dVar75)) / dVar75;\n            pdVar43[1] = dVar61 + (dVar54 * (dVar53 + dVar75)) / dVar75;\n            goto LAB_000a5220;\n          }\n        }\n        else {\nLAB_000a5220:\n          iVar13 = *(int *)(puVar47 + 0x303bd0);\n        }\n        dVar54 = dVar53 * dVar53;\n        dVar64 = dVar54 / (dVar72 * dVar72 + *(double *)(iVar13 + 0x1438));\n        dVar75 = SQRT(dVar64);\n        if (dVar64 < 0.0) {\n          (**(code **)(puVar47 + 0x304770))();\n        }\n        dVar72 = dVar72 * dVar75;\n        pdVar16 = pdVar9 + sVar49 * 5;\n        dVar69 = *pdVar16;\n        dVar73 = pdVar16[1];\n        dVar68 = dVar72 + pdVar9[1];\n        dVar66 = pdVar9[1] - dVar72;\n        dVar64 = dVar75 + *pdVar9;\n        dStack_238 = dVar73 - dVar72;\n        dStack_240 = dVar69 - dVar75;\n        dVar67 = *pdVar9 - dVar75;\n        dVar62 = dVar67;\n        dVar61 = dVar68;\n        dStack_250 = dVar75 + dVar69;\n        dStack_248 = dVar72 + dVar73;\n        if (0.0 < dVar75 * dStack_258 - dVar72 * dStack_260) {\n          dVar62 = dVar64;\n          dVar61 = dVar66;\n          dVar64 = dVar67;\n          dVar66 = dVar68;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar75 + dVar69;\n          dStack_238 = dVar72 + dVar73;\n        }\n        sVar35 = sVar49 + 1;\n        *pdVar12 = dVar62;\n        pdVar12[1] = dVar66;\n        *pdVar11 = dVar64;\n        pdVar11[1] = dVar61;\n        if ((int)sVar35 < (int)sVar40) {\n          iVar27 = *(int *)(puVar47 + 0x303bd8);\n          iVar44 = 1;\n          iVar46 = 1;\n          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a78);\n          dVar75 = *(double *)(*(int *)(puVar47 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar10;\n          do {\n            dVar55 = pdVar16[6];\n            dVar58 = pdVar16[5];\n            dVar59 = dVar55 - dVar73;\n            dVar65 = dVar58 - dVar69;\n            dVar60 = dVar58 - dVar69;\n            dVar67 = dStack_238;\n            dVar68 = dStack_240;\n            dVar70 = dStack_248;\n            dVar74 = dStack_250;\n            if (*(double *)(iVar27 + -0x2e38) <=\n                dVar65 * dVar65 + (dVar55 - dVar73) * (dVar55 - dVar73)) {\n              if (ABS(dVar65) < *(double *)(iVar8 + 0x13f8)) {\n                dVar67 = 0.0;\n                dVar68 = dVar54;\n                if (0.0 <= dVar65) {\n                  if (0.0 <= dVar55 - dVar73) goto LAB_000a53e0;\n                }\n                else if (dVar55 - dVar73 < 0.0) {\nLAB_000a53e0:\n                  dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar59) < *(double *)(iVar8 + 0x13f8)) {\n                dVar65 = 0.0;\n                dVar68 = dVar54 / dVar75;\n                if (0.0 <= dVar55 - dVar73) {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (dVar58 - dVar69 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (0.0 <= dVar58 - dVar69) {\nLAB_000a5880:\n                    dVar67 = *(double *)(iVar30 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar67 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar65 = (dVar55 - dVar73) / (dVar58 - dVar69);\n                dVar67 = dVar72 / dVar65;\n                dVar68 = dVar54 / (dVar67 * dVar67 + *(double *)(iVar13 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar28 = pdVar9 + sVar49 * 5;\n              dVar70 = SQRT(dVar68);\n              if (dVar68 < 0.0) {\n                (**(code **)(puVar47 + 0x304770))();\n                dVar69 = *pdVar28;\n                dVar73 = pdVar28[1];\n                dVar58 = pdVar16[5];\n                dVar55 = pdVar16[6];\n              }\n              dVar67 = dVar67 * dVar70;\n              dStack_2a8 = dVar58 - dVar70;\n              dStack_2a0 = dVar55 - dVar67;\n              dStack_278 = dVar69 - dVar70;\n              dStack_270 = dVar73 - dVar67;\n              dStack_2b8 = dVar70 + dVar58;\n              dStack_2b0 = dVar67 + dVar55;\n              dStack_288 = dVar70 + dVar69;\n              dStack_280 = dVar67 + dVar73;\n              if (0.0 < dVar59 * dVar70 - dVar60 * dVar67) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar70 + dVar58;\n                dStack_2a0 = dVar67 + dVar55;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar70 + dVar69;\n                dStack_270 = dVar67 + dVar73;\n              }\n              dVar67 = dVar63 - dVar65;\n              dVar69 = dStack_250;\n              dVar73 = dStack_248;\n              dVar55 = dStack_238;\n              dVar58 = dStack_240;\n              if (*(double *)(iVar8 + 0x13f8) <= ABS(dVar67)) {\n                dVar69 = (((dVar64 * dVar63 - dVar61) - dVar65 * dStack_2b8) + dStack_2b0) / dVar67;\n                dVar58 = (((dVar63 * dVar62 - dVar66) - dVar65 * dStack_2a8) + dStack_2a0) / dVar67;\n                dVar73 = (dVar69 - dVar64) * dVar63 + dVar61;\n                dVar55 = (dVar58 - dVar62) * dVar63 + dVar66;\n              }\n              if ((int)uStack_22c <= iVar46 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar11 = (double *)\n                            (**(code **)(puVar47 + 0x304710))(pdVar11,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                }\n              }\n              if (iVar44 + 0x618 < (int)uVar10) {\n                if (pdVar11 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a5710:\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar10) {\n                  pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  if (pdVar11 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar12 != (double *)0x0) goto LAB_000a5700;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar48)(pdVar9);\n                  uVar37 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar12 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                uVar10 = uVar10 + 0x618;\n                if (pdVar11 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar12 == (double *)0x0) {\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  goto LAB_000a5710;\n                }\n              }\n              LVar14 = draw_info->linejoin;\n              dVar62 = dStack_278;\n              dVar61 = dStack_280;\n              dVar64 = dStack_288;\n              dVar66 = dStack_270;\n              sVar49 = sVar35;\n              dVar63 = dVar65;\n              if (dVar60 * dStack_258 - dVar59 * dStack_260 <= 0.0) {\n                if (LVar14 != RoundJoin) {\n                  if (LVar14 == BevelJoin) {\n                    pdVar28 = pdVar11 + iVar46 * 2;\n                    pdVar12[iVar44 * 2] = dStack_240;\n                    (pdVar12 + iVar44 * 2)[1] = dStack_238;\n                    pdVar12[iVar44 * 2 + 2] = dStack_278;\n                    (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if (dVar57 < (dVar58 - dVar69) * (dVar58 - dVar69) +\n                                   (dVar55 - dVar73) * (dVar55 - dVar73)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar44 = iVar44 + 1;\n                      iVar46 = iVar46 + 1;\n                      *pdVar43 = dVar58;\n                      pdVar43[1] = dVar55;\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar30 = iVar46 + 1;\n                pdVar43 = pdVar11 + iVar46 * 2;\n                if ((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57) {\n                  *pdVar43 = dVar69;\n                  pdVar43[1] = dVar73;\n                }\n                else {\n                  iVar30 = iVar46 + 2;\n                  *pdVar43 = dStack_250;\n                  pdVar43[1] = dStack_248;\n                  pdVar11[iVar46 * 2 + 2] = dStack_288;\n                  (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                }\n                dVar69 = *pdVar28;\n                dVar68 = pdVar28[1];\n                dVar63 = dVar68;\n                dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_238 - dVar68,dStack_240 - dVar69);\n                dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_270 - dVar63,dStack_278 - dVar69);\n                if (dVar63 < dVar67) {\n                  dVar63 = dVar63 + *(double *)(iVar26 + 0x34a0);\n                }\n                dVar63 = dVar63 - dVar67;\n                dVar73 = *(double *)(iVar13 + 0x1438) / dVar53;\n                dVar70 = SQRT(dVar73);\n                if (dVar73 < 0.0) {\n                  (**(code **)(puVar47 + 0x304770))();\n                }\n                dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar63 / (dVar70 + dVar70));\n                dVar70 = *(double *)(iVar22 + 0x1410);\n                if (dVar73 < dVar70) {\n                  uVar42 = (uint)dVar73;\n                }\n                else {\n                  uVar42 = (int)(dVar73 - dVar70) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar30 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar46 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar11,iVar46,0x10);\n                  }\n                  else {\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  }\n                }\n                if (uVar42 + 0x618 < 0x4000001) {\n                  if ((int)uVar10 <= (int)(iVar44 + 0x618 + uVar42)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uVar10 < uVar42 + 0x618) goto LAB_000a67d4;\n                    iVar46 = uVar42 + uVar10;\n                    uVar10 = iVar46 + 0x618;\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,iVar46 + 0xc30,0x10);\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar11 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a6d2c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar12 = (double *)(*pcVar48)(pdVar12);\nLAB_000a64c4:\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a6884;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar28 = pdVar12 + iVar44 * 2;\n                *pdVar28 = dStack_240;\n                pdVar28[1] = dStack_238;\n                if (1 < (int)uVar42) {\n                  uVar71 = *(undefined8 *)(iVar26 + 0x34a0);\n                  uVar41 = 1;\n                  do {\n                    uVar45 = uVar41 + 1;\n                    dVar70 = ((double)(int)uVar41 * dVar63) / (double)(int)uVar42 + dVar67;\n                    uVar56 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar56);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar69;\n                    uVar56 = (*pcVar48)(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar56);\n                    pdVar28[3] = dVar53 * dVar73 + dVar68;\n                    uVar41 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar42);\n                }\n                *pdVar12 = dStack_278;\n                pdVar12[1] = dStack_270;\n                dStack_258 = dVar59;\n                dStack_260 = dVar60;\n                dVar67 = dStack_2a0;\n                dVar68 = dStack_2a8;\n                dVar70 = dStack_2b0;\n                dVar74 = dStack_2b8;\n                iVar44 = 1;\n                iVar46 = iVar30;\n                dVar63 = dVar65;\n              }\n              else {\n                if (LVar14 != RoundJoin) {\n                  if (LVar14 == BevelJoin) {\n                    iVar30 = iVar46 * 2;\n                    iVar3 = iVar46 * 2;\n                    iVar46 = iVar46 + 2;\n                    pdVar11[iVar30] = dStack_250;\n                    (pdVar11 + iVar30)[1] = dStack_248;\n                    pdVar28 = pdVar12 + iVar44 * 2;\n                    pdVar11[iVar3 + 2] = dStack_288;\n                    (pdVar11 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar58;\n                      pdVar28[1] = dVar55;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_240;\n                      pdVar28[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                          (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar43 = dStack_240;\n                      pdVar43[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar30 = iVar44 + 1;\n                pdVar43 = pdVar12 + iVar44 * 2;\n                if ((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57) {\n                  *pdVar43 = dVar58;\n                  pdVar43[1] = dVar55;\n                }\n                else {\n                  iVar30 = iVar44 + 2;\n                  *pdVar43 = dStack_240;\n                  pdVar43[1] = dStack_238;\n                  pdVar12[iVar44 * 2 + 2] = dStack_278;\n                  (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                }\n                dVar68 = *pdVar28;\n                dVar69 = pdVar28[1];\n                dVar63 = dVar68;\n                dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_248 - dVar69,dStack_250 - dVar68);\n                dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_280 - dVar69,dStack_288 - dVar63);\n                if (dVar67 < dVar63) {\n                  dVar67 = dVar67 + *(double *)(iVar26 + 0x34a0);\n                }\n                dVar73 = dVar67 - dVar63;\n                dVar70 = *(double *)(iVar13 + 0x1438) / dVar53;\n                dVar74 = SQRT(dVar70);\n                if (dVar70 < 0.0) {\n                  (**(code **)(puVar47 + 0x304770))();\n                }\n                dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar73 / (dVar74 + dVar74));\n                if (dVar73 < dVar51) {\n                  uVar41 = (uint)dVar73;\n                  uVar42 = uVar41 + 0x618;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                  if (uVar42 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar11 = (double *)(*pcVar48)(pdVar11);\n                }\n                else {\n                  uVar41 = (int)(dVar73 - dVar51) | 0x80000000;\n                  uVar42 = uVar41 + 0x618;\n                  if (0x4000000 < uVar42) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar46 + 0x618 + uVar41)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uStack_22c < uVar42) goto LAB_000a66a4;\n                    iVar44 = uStack_22c + uVar41;\n                    uStack_22c = iVar44 + 0x618;\n                    pdVar11 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar11,iVar44 + 0xc30,0x10);\n                  }\n                }\n                if (iVar30 + 0x618 < (int)uVar10) {\n                  if (pdVar11 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a665c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar10 < 0xfffff9e8) {\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                    uVar10 = uVar10 + 0x618;\n                  }\n                  else {\n                    pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  }\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a664c;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar28 = pdVar11 + iVar46 * 2;\n                *pdVar28 = dStack_250;\n                pdVar28[1] = dStack_248;\n                if (1 < (int)uVar41) {\n                  dVar63 = dVar63 - dVar67;\n                  uVar42 = 1;\n                  do {\n                    uVar45 = uVar42 + 1;\n                    dVar70 = ((double)(int)uVar42 * dVar63) / (double)(int)uVar41 + dVar67;\n                    uVar71 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar71);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar68;\n                    uVar71 = (*pcVar48)(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar71);\n                    pdVar28[3] = dVar53 * dVar73 + dVar69;\n                    uVar42 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar41);\n                }\n                *pdVar11 = dStack_288;\n                pdVar11[1] = dStack_280;\n                dStack_258 = dVar59;\n                dStack_260 = dVar60;\n                dVar67 = dStack_2a0;\n                dVar68 = dStack_2a8;\n                dVar70 = dStack_2b0;\n                dVar74 = dStack_2b8;\n                iVar44 = iVar30;\n                iVar46 = 1;\n                dVar63 = dVar65;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar74;\n            dStack_248 = dVar70;\n            dStack_240 = dVar68;\n            dStack_238 = dVar67;\n            if (sVar35 + 1 == sVar40) goto LAB_000a5a58;\n            pdVar16 = pdVar16 + 5;\n            sVar35 = sVar35 + 1;\n            dVar69 = pdVar9[sVar49 * 5];\n            dVar73 = (pdVar9 + sVar49 * 5)[1];\n          } while( true );\n        }\n        iVar44 = 4;\n        iVar27 = 0x10;\n        iVar46 = 0x10;\n        iVar13 = 2;\n        goto LAB_000a5a70;\n      }\n      bVar1 = (int)sVar40 < 2;\n      iStack_188 = 0;\n      bVar2 = false;\n      *(size_t *)((int)pdVar11 + 0x14) = 0;\n      if (!bVar1) goto LAB_000a4fe8;\nLAB_000a6124:\n      if (sVar40 != 1) {\n        sVar49 = 1;\n        dStack_258 = 0.0;\n        dStack_260 = 0.0;\n        goto LAB_000a5110;\n      }\n      sVar49 = 1;\n      dStack_258 = 0.0;\n      LVar23 = draw_info->linecap;\n      dStack_260 = 0.0;\njoined_r0x000a50f8:\n      if (LVar23 == RoundCap) {\n        pcVar48 = *(code **)(puVar47 + 0x304644);\n        if (!bVar2) {\n          sVar49 = sVar49 - 1;\n          goto LAB_000a5110;\n        }\n      }\n      else {\n        pcVar48 = *(code **)(puVar47 + 0x304644);\n      }\n      pPVar18 = (PrimitiveInfo *)(*pcVar48)(0x28);\n      pdVar11 = pdVar9;\n      pPVar17 = pPVar18;\n      do {\n        pPVar36 = pPVar17;\n        pdVar12 = pdVar11;\n        pdVar11 = pdVar12 + 2;\n        sVar35 = *(size_t *)((int)pdVar12 + 4);\n        sVar49 = *(size_t *)(pdVar12 + 1);\n        sVar40 = *(size_t *)((int)pdVar12 + 0xc);\n        *(size_t *)&(pPVar36->point).x = *(size_t *)pdVar12;\n        *(size_t *)((int)&(pPVar36->point).x + 4) = sVar35;\n        *(size_t *)&(pPVar36->point).y = sVar49;\n        *(size_t *)((int)&(pPVar36->point).y + 4) = sVar40;\n        pPVar17 = (PrimitiveInfo *)&pPVar36->coordinates;\n      } while (pdVar11 != pdVar9 + 4);\n      PVar5 = *(PrimitiveType *)((int)pdVar12 + 0x14);\n      pcVar48 = *(code **)(puVar47 + 0x3042b0);\n      pPVar36->coordinates = *(size_t *)pdVar11;\n      pPVar36->primitive = PVar5;\n      pPVar18->coordinates = 0;\n      (*pcVar48)(pdVar9);\n      goto LAB_000a61cc;\n    }\n    uVar37 = 0x1c57;\nLAB_000a5724:\n    (**(code **)(puVar47 + 0x304210))\n              (exception,*(int *)(puVar47 + 0x303bd8) + 0x38b0,*(int *)(puVar47 + 0x303bd8) + 0x45c8\n               ,uVar37,400,*(int *)(puVar47 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar47 + 0x303bd0) + 0x3e28,*(int *)(puVar47 + 0x303bd4) + -0x3688);\n    MStack_1d0 = MagickFalse;\n    goto LAB_000a5774;\n  }" { (expression_statement "iVar8 = *(int *)(puVar47 + 0x303bd0);" (assignment_expression "iVar8 = *(int *)(puVar47 + 0x303bd0)" identifier = (pointer_expression "*(int *)(puVar47 + 0x303bd0)" * (cast_expression "(int *)(puVar47 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x303bd0)" ( (binary_expression "puVar47 + 0x303bd0" identifier + number_literal) ))))) ;) (expression_statement "iVar26 = *(int *)(puVar47 + 0x303bd8);" (assignment_expression "iVar26 = *(int *)(puVar47 + 0x303bd8)" identifier = (pointer_expression "*(int *)(puVar47 + 0x303bd8)" * (cast_expression "(int *)(puVar47 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x303bd8)" ( (binary_expression "puVar47 + 0x303bd8" identifier + number_literal) ))))) ;) (expression_statement "MStack_1d0 = MagickTrue;" (assignment_expression "MStack_1d0 = MagickTrue" identifier = identifier) ;) (expression_statement "dVar50 = *(double *)(iVar8 + 0x13f8);" (assignment_expression "dVar50 = *(double *)(iVar8 + 0x13f8)" identifier = (pointer_expression "*(double *)(iVar8 + 0x13f8)" * (cast_expression "(double *)(iVar8 + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x13f8)" ( (binary_expression "iVar8 + 0x13f8" identifier + number_literal) ))))) ;) (expression_statement "iVar22 = *(int *)(puVar47 + 0x303bd0);" (assignment_expression "iVar22 = *(int *)(puVar47 + 0x303bd0)" identifier = (pointer_expression "*(int *)(puVar47 + 0x303bd0)" * (cast_expression "(int *)(puVar47 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x303bd0)" ( (binary_expression "puVar47 + 0x303bd0" identifier + number_literal) ))))) ;) (expression_statement "dVar51 = *(double *)(iVar22 + 0x1410);" (assignment_expression "dVar51 = *(double *)(iVar22 + 0x1410)" identifier = (pointer_expression "*(double *)(iVar22 + 0x1410)" * (cast_expression "(double *)(iVar22 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x1410)" ( (binary_expression "iVar22 + 0x1410" identifier + number_literal) ))))) ;) (expression_statement "uVar52 = *(undefined8 *)(iVar26 + 0x34a0);" (assignment_expression "uVar52 = *(undefined8 *)(iVar26 + 0x34a0)" identifier = (pointer_expression "*(undefined8 *)(iVar26 + 0x34a0)" * (cast_expression "(undefined8 *)(iVar26 + 0x34a0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x34a0)" ( (binary_expression "iVar26 + 0x34a0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000a4e98:\n    sVar40 = pPStack_e8->coordinates;" statement_identifier : (expression_statement "sVar40 = pPStack_e8->coordinates;" (assignment_expression "sVar40 = pPStack_e8->coordinates" identifier = (field_expression "pPStack_e8->coordinates" identifier -> field_identifier)) ;)) (if_statement "if (sVar40 == 1) {\n      iVar44 = 0x28;\n      goto LAB_000a6620;\n    }" if (parenthesized_expression "(sVar40 == 1)" ( (binary_expression "sVar40 == 1" identifier == number_literal) )) (compound_statement "{\n      iVar44 = 0x28;\n      goto LAB_000a6620;\n    }" { (expression_statement "iVar44 = 0x28;" (assignment_expression "iVar44 = 0x28" identifier = number_literal) ;) (goto_statement "goto LAB_000a6620;" goto statement_identifier ;) })) (expression_statement "pdVar9 = (double *)(**(code **)(puVar47 + 0x3047fc))(sVar40 + 2,0x28);" (assignment_expression "pdVar9 = (double *)(**(code **)(puVar47 + 0x3047fc))(sVar40 + 2,0x28)" identifier = (cast_expression "(double *)(**(code **)(puVar47 + 0x3047fc))(sVar40 + 2,0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar47 + 0x3047fc))(sVar40 + 2,0x28)" (parenthesized_expression "(**(code **)(puVar47 + 0x3047fc))" ( (pointer_expression "**(code **)(puVar47 + 0x3047fc)" * (pointer_expression "*(code **)(puVar47 + 0x3047fc)" * (cast_expression "(code **)(puVar47 + 0x3047fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3047fc)" ( (binary_expression "puVar47 + 0x3047fc" identifier + number_literal) ))))) )) (argument_list "(sVar40 + 2,0x28)" ( (binary_expression "sVar40 + 2" identifier + number_literal) , number_literal ))))) ;) (if_statement "if (pdVar9 != (double *)0x0) {\n      iVar44 = sVar40 * 0x28;\n      (**(code **)(puVar47 + 0x304648))(pdVar9,pPStack_e8,iVar44);\n      pdVar11 = pdVar9 + sVar40 * 5;\n      if ((ABS(pPStack_e8[sVar40 - 1].point.x - (pPStack_e8->point).x) < dVar50) &&\n         (ABS(pPStack_e8[sVar40 - 1].point.y - (pPStack_e8->point).y) < dVar50)) {\n        if (draw_info->linejoin - MiterJoin < 2) {\n          pPVar18 = pPStack_e8 + 1;\n          do {\n            pdVar12 = pdVar11;\n            pPVar17 = pPVar18;\n            pPVar18 = (PrimitiveInfo *)&pPVar17->coordinates;\n            sVar24 = *(size_t *)&(pPVar17->point).y;\n            sVar49 = *(size_t *)((int)&(pPVar17->point).y + 4);\n            sVar35 = *(size_t *)&(pPVar17->point).x;\n            *(size_t *)((int)pdVar12 + 4) = *(size_t *)((int)&(pPVar17->point).x + 4);\n            *(size_t *)(pdVar12 + 1) = sVar24;\n            *(size_t *)pdVar12 = sVar35;\n            *(size_t *)((int)pdVar12 + 0xc) = sVar49;\n            pdVar11 = pdVar12 + 2;\n          } while (pPVar18 != (PrimitiveInfo *)&pPStack_e8[1].closed_subpath);\n          iVar44 = iVar44 + 0x28;\n          sVar49 = *(size_t *)pPVar18;\n          pdVar11 = pdVar9 + sVar40 * 5 + 5;\n          *(PrimitiveType *)((int)pdVar12 + 0x14) = pPVar17->primitive;\n          *(size_t *)(pdVar12 + 2) = sVar49;\n          sVar40 = sVar40 + 1;\n        }\n        iStack_188 = 1;\n        bVar2 = true;\n        bVar1 = (int)sVar40 < 2;\n        *(size_t *)((int)pdVar11 + 0x14) = 0;\n        if (bVar1) goto LAB_000a6124;\nLAB_000a4fe8:\n        dVar72 = *(double *)(iVar8 + 0x13f8);\n        dStack_260 = pdVar9[5] - *pdVar9;\n        dStack_258 = pdVar9[6] - pdVar9[1];\n        if ((dVar72 <= ABS(dStack_260)) || (dVar72 <= ABS(dStack_258))) {\n          sVar49 = 1;\n        }\n        else {\n          sVar49 = 1;\n          pdVar11 = pdVar9 + 10;\n          do {\n            sVar49 = sVar49 + 1;\n            if (sVar49 == sVar40) {\n              LVar23 = draw_info->linecap;\n              sVar49 = sVar40;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar11 - *pdVar9;\n            dStack_258 = pdVar11[1] - pdVar9[1];\n          } while ((ABS(dStack_260) < dVar72) && (pdVar11 = pdVar11 + 5, ABS(dStack_258) < dVar72));\n        }\nLAB_000a5110:\n        uVar10 = sVar40 * 2;\n        pdVar11 = (double *)(**(code **)(puVar47 + 0x3047fc))(uVar10 + 0x618,0x10);\n        pdVar12 = (double *)(**(code **)(puVar47 + 0x3047fc))(uVar10 + 0x618,0x10);\n        if (pdVar11 == (double *)0x0) {\n          if (pdVar12 != (double *)0x0) {\n            (**(code **)(puVar47 + 0x3042b0))(pdVar12);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar47 + 0x3042b0))(pdVar9);\n          uVar37 = 0x1c93;\n          goto LAB_000a5724;\n        }\n        if (pdVar12 == (double *)0x0) {\n          (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n          goto LAB_000a6cbc;\n        }\n        if (ABS(dStack_260) < *(double *)(iVar8 + 0x13f8)) {\n          dVar72 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar63 = *(double *)(iVar13 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar63 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n        }\n        else if (ABS(dStack_258) < *(double *)(iVar8 + 0x13f8)) {\n          dVar63 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar72 = *(double *)(iVar13 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar63 = dStack_258 / dStack_260;\n          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a78) / dVar63;\n        }\nLAB_000a51b0:\n        dVar53 = (double)(**(code **)(puVar47 + 0x304288))(&draw_info->affine);\n        iVar13 = draw_info->miterlimit * draw_info->miterlimit;\n        dVar53 = dVar53 * draw_info->stroke_width *\n                 *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1400);\n        dVar57 = (double)iVar13;\n        if (iVar13 < 0) {\n          dVar57 = dVar57 + *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1418);\n        }\n        dVar57 = dVar57 * dVar53 * dVar53;\n        if (draw_info->linecap == SquareCap) {\n          iVar13 = *(int *)(puVar47 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar54 = 0.0;\n              if (sVar40 == 1) {\n                dVar64 = 0.0;\n                sVar35 = 1;\nLAB_000a6998:\n                pdVar16 = pdVar9 + (sVar35 - 1) * 5;\n              }\n              else {\n                pdVar16 = pdVar9 + 5;\n                dVar64 = 0.0;\n              }\n            }\n            else {\n              dVar75 = *(double *)(iVar8 + 0x13f8);\n              dVar64 = *pdVar9 - pdVar9[5];\n              dVar54 = pdVar9[1] - pdVar9[6];\n              if ((dVar75 <= ABS(dVar64)) || (dVar75 <= ABS(dVar54))) {\n                pdVar16 = pdVar9 + 5;\n              }\n              else {\n                sVar24 = 1;\n                pdVar28 = pdVar9 + 10;\n                do {\n                  pdVar16 = pdVar28;\n                  sVar24 = sVar24 + 1;\n                  sVar35 = sVar40;\n                  if (sVar24 == sVar40) goto LAB_000a6998;\n                  dVar64 = *pdVar9 - *pdVar16;\n                  dVar54 = pdVar9[1] - pdVar16[1];\n                } while ((ABS(dVar64) < dVar75) && (pdVar28 = pdVar16 + 5, ABS(dVar54) < dVar75));\n              }\n            }\n            dVar75 = (double)(**(code **)(puVar47 + 0x304a08))(dVar64,dVar54);\n            iVar13 = sVar40 - 2;\n            dVar61 = pdVar16[1];\n            pdVar43 = (double *)((int)pdVar9 + iVar44 + -0x28);\n            pdVar28 = pdVar9 + iVar13 * 5;\n            *pdVar9 = *pdVar16 + (dVar64 * (dVar53 + dVar75)) / dVar75;\n            pdVar9[1] = dVar61 + (dVar54 * (dVar53 + dVar75)) / dVar75;\n            if (-1 < iVar13) {\n              dVar75 = *(double *)(iVar8 + 0x13f8);\n              dVar64 = *pdVar43 - *pdVar28;\n              dVar54 = pdVar43[1] - pdVar28[1];\n              if (ABS(dVar64) < dVar75) {\n                pdVar16 = pdVar9 + (sVar40 - 3) * 5;\n                do {\n                  pdVar28 = pdVar16;\n                  if (dVar75 <= ABS(dVar54)) {\n                    pdVar28 = pdVar9 + iVar13 * 5;\n                    break;\n                  }\n                  iVar13 = iVar13 + -1;\n                  if (iVar13 == -1) break;\n                  dVar64 = *pdVar43 - *pdVar28;\n                  dVar54 = pdVar43[1] - pdVar28[1];\n                  pdVar16 = pdVar28 + -5;\n                } while (ABS(dVar64) < dVar75);\n              }\n            }\n            dVar75 = (double)(**(code **)(puVar47 + 0x304a08))(dVar64,dVar54);\n            dVar61 = pdVar28[1];\n            *pdVar43 = *pdVar28 + (dVar64 * (dVar53 + dVar75)) / dVar75;\n            pdVar43[1] = dVar61 + (dVar54 * (dVar53 + dVar75)) / dVar75;\n            goto LAB_000a5220;\n          }\n        }\n        else {\nLAB_000a5220:\n          iVar13 = *(int *)(puVar47 + 0x303bd0);\n        }\n        dVar54 = dVar53 * dVar53;\n        dVar64 = dVar54 / (dVar72 * dVar72 + *(double *)(iVar13 + 0x1438));\n        dVar75 = SQRT(dVar64);\n        if (dVar64 < 0.0) {\n          (**(code **)(puVar47 + 0x304770))();\n        }\n        dVar72 = dVar72 * dVar75;\n        pdVar16 = pdVar9 + sVar49 * 5;\n        dVar69 = *pdVar16;\n        dVar73 = pdVar16[1];\n        dVar68 = dVar72 + pdVar9[1];\n        dVar66 = pdVar9[1] - dVar72;\n        dVar64 = dVar75 + *pdVar9;\n        dStack_238 = dVar73 - dVar72;\n        dStack_240 = dVar69 - dVar75;\n        dVar67 = *pdVar9 - dVar75;\n        dVar62 = dVar67;\n        dVar61 = dVar68;\n        dStack_250 = dVar75 + dVar69;\n        dStack_248 = dVar72 + dVar73;\n        if (0.0 < dVar75 * dStack_258 - dVar72 * dStack_260) {\n          dVar62 = dVar64;\n          dVar61 = dVar66;\n          dVar64 = dVar67;\n          dVar66 = dVar68;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar75 + dVar69;\n          dStack_238 = dVar72 + dVar73;\n        }\n        sVar35 = sVar49 + 1;\n        *pdVar12 = dVar62;\n        pdVar12[1] = dVar66;\n        *pdVar11 = dVar64;\n        pdVar11[1] = dVar61;\n        if ((int)sVar35 < (int)sVar40) {\n          iVar27 = *(int *)(puVar47 + 0x303bd8);\n          iVar44 = 1;\n          iVar46 = 1;\n          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a78);\n          dVar75 = *(double *)(*(int *)(puVar47 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar10;\n          do {\n            dVar55 = pdVar16[6];\n            dVar58 = pdVar16[5];\n            dVar59 = dVar55 - dVar73;\n            dVar65 = dVar58 - dVar69;\n            dVar60 = dVar58 - dVar69;\n            dVar67 = dStack_238;\n            dVar68 = dStack_240;\n            dVar70 = dStack_248;\n            dVar74 = dStack_250;\n            if (*(double *)(iVar27 + -0x2e38) <=\n                dVar65 * dVar65 + (dVar55 - dVar73) * (dVar55 - dVar73)) {\n              if (ABS(dVar65) < *(double *)(iVar8 + 0x13f8)) {\n                dVar67 = 0.0;\n                dVar68 = dVar54;\n                if (0.0 <= dVar65) {\n                  if (0.0 <= dVar55 - dVar73) goto LAB_000a53e0;\n                }\n                else if (dVar55 - dVar73 < 0.0) {\nLAB_000a53e0:\n                  dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar59) < *(double *)(iVar8 + 0x13f8)) {\n                dVar65 = 0.0;\n                dVar68 = dVar54 / dVar75;\n                if (0.0 <= dVar55 - dVar73) {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (dVar58 - dVar69 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (0.0 <= dVar58 - dVar69) {\nLAB_000a5880:\n                    dVar67 = *(double *)(iVar30 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar67 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar65 = (dVar55 - dVar73) / (dVar58 - dVar69);\n                dVar67 = dVar72 / dVar65;\n                dVar68 = dVar54 / (dVar67 * dVar67 + *(double *)(iVar13 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar28 = pdVar9 + sVar49 * 5;\n              dVar70 = SQRT(dVar68);\n              if (dVar68 < 0.0) {\n                (**(code **)(puVar47 + 0x304770))();\n                dVar69 = *pdVar28;\n                dVar73 = pdVar28[1];\n                dVar58 = pdVar16[5];\n                dVar55 = pdVar16[6];\n              }\n              dVar67 = dVar67 * dVar70;\n              dStack_2a8 = dVar58 - dVar70;\n              dStack_2a0 = dVar55 - dVar67;\n              dStack_278 = dVar69 - dVar70;\n              dStack_270 = dVar73 - dVar67;\n              dStack_2b8 = dVar70 + dVar58;\n              dStack_2b0 = dVar67 + dVar55;\n              dStack_288 = dVar70 + dVar69;\n              dStack_280 = dVar67 + dVar73;\n              if (0.0 < dVar59 * dVar70 - dVar60 * dVar67) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar70 + dVar58;\n                dStack_2a0 = dVar67 + dVar55;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar70 + dVar69;\n                dStack_270 = dVar67 + dVar73;\n              }\n              dVar67 = dVar63 - dVar65;\n              dVar69 = dStack_250;\n              dVar73 = dStack_248;\n              dVar55 = dStack_238;\n              dVar58 = dStack_240;\n              if (*(double *)(iVar8 + 0x13f8) <= ABS(dVar67)) {\n                dVar69 = (((dVar64 * dVar63 - dVar61) - dVar65 * dStack_2b8) + dStack_2b0) / dVar67;\n                dVar58 = (((dVar63 * dVar62 - dVar66) - dVar65 * dStack_2a8) + dStack_2a0) / dVar67;\n                dVar73 = (dVar69 - dVar64) * dVar63 + dVar61;\n                dVar55 = (dVar58 - dVar62) * dVar63 + dVar66;\n              }\n              if ((int)uStack_22c <= iVar46 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar11 = (double *)\n                            (**(code **)(puVar47 + 0x304710))(pdVar11,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                }\n              }\n              if (iVar44 + 0x618 < (int)uVar10) {\n                if (pdVar11 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a5710:\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar10) {\n                  pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  if (pdVar11 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar12 != (double *)0x0) goto LAB_000a5700;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar48)(pdVar9);\n                  uVar37 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar12 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                uVar10 = uVar10 + 0x618;\n                if (pdVar11 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar12 == (double *)0x0) {\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  goto LAB_000a5710;\n                }\n              }\n              LVar14 = draw_info->linejoin;\n              dVar62 = dStack_278;\n              dVar61 = dStack_280;\n              dVar64 = dStack_288;\n              dVar66 = dStack_270;\n              sVar49 = sVar35;\n              dVar63 = dVar65;\n              if (dVar60 * dStack_258 - dVar59 * dStack_260 <= 0.0) {\n                if (LVar14 != RoundJoin) {\n                  if (LVar14 == BevelJoin) {\n                    pdVar28 = pdVar11 + iVar46 * 2;\n                    pdVar12[iVar44 * 2] = dStack_240;\n                    (pdVar12 + iVar44 * 2)[1] = dStack_238;\n                    pdVar12[iVar44 * 2 + 2] = dStack_278;\n                    (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if (dVar57 < (dVar58 - dVar69) * (dVar58 - dVar69) +\n                                   (dVar55 - dVar73) * (dVar55 - dVar73)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar44 = iVar44 + 1;\n                      iVar46 = iVar46 + 1;\n                      *pdVar43 = dVar58;\n                      pdVar43[1] = dVar55;\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar30 = iVar46 + 1;\n                pdVar43 = pdVar11 + iVar46 * 2;\n                if ((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57) {\n                  *pdVar43 = dVar69;\n                  pdVar43[1] = dVar73;\n                }\n                else {\n                  iVar30 = iVar46 + 2;\n                  *pdVar43 = dStack_250;\n                  pdVar43[1] = dStack_248;\n                  pdVar11[iVar46 * 2 + 2] = dStack_288;\n                  (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                }\n                dVar69 = *pdVar28;\n                dVar68 = pdVar28[1];\n                dVar63 = dVar68;\n                dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_238 - dVar68,dStack_240 - dVar69);\n                dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_270 - dVar63,dStack_278 - dVar69);\n                if (dVar63 < dVar67) {\n                  dVar63 = dVar63 + *(double *)(iVar26 + 0x34a0);\n                }\n                dVar63 = dVar63 - dVar67;\n                dVar73 = *(double *)(iVar13 + 0x1438) / dVar53;\n                dVar70 = SQRT(dVar73);\n                if (dVar73 < 0.0) {\n                  (**(code **)(puVar47 + 0x304770))();\n                }\n                dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar63 / (dVar70 + dVar70));\n                dVar70 = *(double *)(iVar22 + 0x1410);\n                if (dVar73 < dVar70) {\n                  uVar42 = (uint)dVar73;\n                }\n                else {\n                  uVar42 = (int)(dVar73 - dVar70) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar30 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar46 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar11,iVar46,0x10);\n                  }\n                  else {\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  }\n                }\n                if (uVar42 + 0x618 < 0x4000001) {\n                  if ((int)uVar10 <= (int)(iVar44 + 0x618 + uVar42)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uVar10 < uVar42 + 0x618) goto LAB_000a67d4;\n                    iVar46 = uVar42 + uVar10;\n                    uVar10 = iVar46 + 0x618;\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,iVar46 + 0xc30,0x10);\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar11 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a6d2c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar12 = (double *)(*pcVar48)(pdVar12);\nLAB_000a64c4:\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a6884;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar28 = pdVar12 + iVar44 * 2;\n                *pdVar28 = dStack_240;\n                pdVar28[1] = dStack_238;\n                if (1 < (int)uVar42) {\n                  uVar71 = *(undefined8 *)(iVar26 + 0x34a0);\n                  uVar41 = 1;\n                  do {\n                    uVar45 = uVar41 + 1;\n                    dVar70 = ((double)(int)uVar41 * dVar63) / (double)(int)uVar42 + dVar67;\n                    uVar56 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar56);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar69;\n                    uVar56 = (*pcVar48)(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar56);\n                    pdVar28[3] = dVar53 * dVar73 + dVar68;\n                    uVar41 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar42);\n                }\n                *pdVar12 = dStack_278;\n                pdVar12[1] = dStack_270;\n                dStack_258 = dVar59;\n                dStack_260 = dVar60;\n                dVar67 = dStack_2a0;\n                dVar68 = dStack_2a8;\n                dVar70 = dStack_2b0;\n                dVar74 = dStack_2b8;\n                iVar44 = 1;\n                iVar46 = iVar30;\n                dVar63 = dVar65;\n              }\n              else {\n                if (LVar14 != RoundJoin) {\n                  if (LVar14 == BevelJoin) {\n                    iVar30 = iVar46 * 2;\n                    iVar3 = iVar46 * 2;\n                    iVar46 = iVar46 + 2;\n                    pdVar11[iVar30] = dStack_250;\n                    (pdVar11 + iVar30)[1] = dStack_248;\n                    pdVar28 = pdVar12 + iVar44 * 2;\n                    pdVar11[iVar3 + 2] = dStack_288;\n                    (pdVar11 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar58;\n                      pdVar28[1] = dVar55;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_240;\n                      pdVar28[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                          (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar43 = dStack_240;\n                      pdVar43[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar30 = iVar44 + 1;\n                pdVar43 = pdVar12 + iVar44 * 2;\n                if ((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57) {\n                  *pdVar43 = dVar58;\n                  pdVar43[1] = dVar55;\n                }\n                else {\n                  iVar30 = iVar44 + 2;\n                  *pdVar43 = dStack_240;\n                  pdVar43[1] = dStack_238;\n                  pdVar12[iVar44 * 2 + 2] = dStack_278;\n                  (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                }\n                dVar68 = *pdVar28;\n                dVar69 = pdVar28[1];\n                dVar63 = dVar68;\n                dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_248 - dVar69,dStack_250 - dVar68);\n                dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_280 - dVar69,dStack_288 - dVar63);\n                if (dVar67 < dVar63) {\n                  dVar67 = dVar67 + *(double *)(iVar26 + 0x34a0);\n                }\n                dVar73 = dVar67 - dVar63;\n                dVar70 = *(double *)(iVar13 + 0x1438) / dVar53;\n                dVar74 = SQRT(dVar70);\n                if (dVar70 < 0.0) {\n                  (**(code **)(puVar47 + 0x304770))();\n                }\n                dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar73 / (dVar74 + dVar74));\n                if (dVar73 < dVar51) {\n                  uVar41 = (uint)dVar73;\n                  uVar42 = uVar41 + 0x618;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                  if (uVar42 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar11 = (double *)(*pcVar48)(pdVar11);\n                }\n                else {\n                  uVar41 = (int)(dVar73 - dVar51) | 0x80000000;\n                  uVar42 = uVar41 + 0x618;\n                  if (0x4000000 < uVar42) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar46 + 0x618 + uVar41)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uStack_22c < uVar42) goto LAB_000a66a4;\n                    iVar44 = uStack_22c + uVar41;\n                    uStack_22c = iVar44 + 0x618;\n                    pdVar11 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar11,iVar44 + 0xc30,0x10);\n                  }\n                }\n                if (iVar30 + 0x618 < (int)uVar10) {\n                  if (pdVar11 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a665c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar10 < 0xfffff9e8) {\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                    uVar10 = uVar10 + 0x618;\n                  }\n                  else {\n                    pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  }\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a664c;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar28 = pdVar11 + iVar46 * 2;\n                *pdVar28 = dStack_250;\n                pdVar28[1] = dStack_248;\n                if (1 < (int)uVar41) {\n                  dVar63 = dVar63 - dVar67;\n                  uVar42 = 1;\n                  do {\n                    uVar45 = uVar42 + 1;\n                    dVar70 = ((double)(int)uVar42 * dVar63) / (double)(int)uVar41 + dVar67;\n                    uVar71 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar71);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar68;\n                    uVar71 = (*pcVar48)(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar71);\n                    pdVar28[3] = dVar53 * dVar73 + dVar69;\n                    uVar42 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar41);\n                }\n                *pdVar11 = dStack_288;\n                pdVar11[1] = dStack_280;\n                dStack_258 = dVar59;\n                dStack_260 = dVar60;\n                dVar67 = dStack_2a0;\n                dVar68 = dStack_2a8;\n                dVar70 = dStack_2b0;\n                dVar74 = dStack_2b8;\n                iVar44 = iVar30;\n                iVar46 = 1;\n                dVar63 = dVar65;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar74;\n            dStack_248 = dVar70;\n            dStack_240 = dVar68;\n            dStack_238 = dVar67;\n            if (sVar35 + 1 == sVar40) goto LAB_000a5a58;\n            pdVar16 = pdVar16 + 5;\n            sVar35 = sVar35 + 1;\n            dVar69 = pdVar9[sVar49 * 5];\n            dVar73 = (pdVar9 + sVar49 * 5)[1];\n          } while( true );\n        }\n        iVar44 = 4;\n        iVar27 = 0x10;\n        iVar46 = 0x10;\n        iVar13 = 2;\n        goto LAB_000a5a70;\n      }\n      bVar1 = (int)sVar40 < 2;\n      iStack_188 = 0;\n      bVar2 = false;\n      *(size_t *)((int)pdVar11 + 0x14) = 0;\n      if (!bVar1) goto LAB_000a4fe8;\nLAB_000a6124:\n      if (sVar40 != 1) {\n        sVar49 = 1;\n        dStack_258 = 0.0;\n        dStack_260 = 0.0;\n        goto LAB_000a5110;\n      }\n      sVar49 = 1;\n      dStack_258 = 0.0;\n      LVar23 = draw_info->linecap;\n      dStack_260 = 0.0;\njoined_r0x000a50f8:\n      if (LVar23 == RoundCap) {\n        pcVar48 = *(code **)(puVar47 + 0x304644);\n        if (!bVar2) {\n          sVar49 = sVar49 - 1;\n          goto LAB_000a5110;\n        }\n      }\n      else {\n        pcVar48 = *(code **)(puVar47 + 0x304644);\n      }\n      pPVar18 = (PrimitiveInfo *)(*pcVar48)(0x28);\n      pdVar11 = pdVar9;\n      pPVar17 = pPVar18;\n      do {\n        pPVar36 = pPVar17;\n        pdVar12 = pdVar11;\n        pdVar11 = pdVar12 + 2;\n        sVar35 = *(size_t *)((int)pdVar12 + 4);\n        sVar49 = *(size_t *)(pdVar12 + 1);\n        sVar40 = *(size_t *)((int)pdVar12 + 0xc);\n        *(size_t *)&(pPVar36->point).x = *(size_t *)pdVar12;\n        *(size_t *)((int)&(pPVar36->point).x + 4) = sVar35;\n        *(size_t *)&(pPVar36->point).y = sVar49;\n        *(size_t *)((int)&(pPVar36->point).y + 4) = sVar40;\n        pPVar17 = (PrimitiveInfo *)&pPVar36->coordinates;\n      } while (pdVar11 != pdVar9 + 4);\n      PVar5 = *(PrimitiveType *)((int)pdVar12 + 0x14);\n      pcVar48 = *(code **)(puVar47 + 0x3042b0);\n      pPVar36->coordinates = *(size_t *)pdVar11;\n      pPVar36->primitive = PVar5;\n      pPVar18->coordinates = 0;\n      (*pcVar48)(pdVar9);\n      goto LAB_000a61cc;\n    }" if (parenthesized_expression "(pdVar9 != (double *)0x0)" ( (binary_expression "pdVar9 != (double *)0x0" identifier != (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar44 = sVar40 * 0x28;\n      (**(code **)(puVar47 + 0x304648))(pdVar9,pPStack_e8,iVar44);\n      pdVar11 = pdVar9 + sVar40 * 5;\n      if ((ABS(pPStack_e8[sVar40 - 1].point.x - (pPStack_e8->point).x) < dVar50) &&\n         (ABS(pPStack_e8[sVar40 - 1].point.y - (pPStack_e8->point).y) < dVar50)) {\n        if (draw_info->linejoin - MiterJoin < 2) {\n          pPVar18 = pPStack_e8 + 1;\n          do {\n            pdVar12 = pdVar11;\n            pPVar17 = pPVar18;\n            pPVar18 = (PrimitiveInfo *)&pPVar17->coordinates;\n            sVar24 = *(size_t *)&(pPVar17->point).y;\n            sVar49 = *(size_t *)((int)&(pPVar17->point).y + 4);\n            sVar35 = *(size_t *)&(pPVar17->point).x;\n            *(size_t *)((int)pdVar12 + 4) = *(size_t *)((int)&(pPVar17->point).x + 4);\n            *(size_t *)(pdVar12 + 1) = sVar24;\n            *(size_t *)pdVar12 = sVar35;\n            *(size_t *)((int)pdVar12 + 0xc) = sVar49;\n            pdVar11 = pdVar12 + 2;\n          } while (pPVar18 != (PrimitiveInfo *)&pPStack_e8[1].closed_subpath);\n          iVar44 = iVar44 + 0x28;\n          sVar49 = *(size_t *)pPVar18;\n          pdVar11 = pdVar9 + sVar40 * 5 + 5;\n          *(PrimitiveType *)((int)pdVar12 + 0x14) = pPVar17->primitive;\n          *(size_t *)(pdVar12 + 2) = sVar49;\n          sVar40 = sVar40 + 1;\n        }\n        iStack_188 = 1;\n        bVar2 = true;\n        bVar1 = (int)sVar40 < 2;\n        *(size_t *)((int)pdVar11 + 0x14) = 0;\n        if (bVar1) goto LAB_000a6124;\nLAB_000a4fe8:\n        dVar72 = *(double *)(iVar8 + 0x13f8);\n        dStack_260 = pdVar9[5] - *pdVar9;\n        dStack_258 = pdVar9[6] - pdVar9[1];\n        if ((dVar72 <= ABS(dStack_260)) || (dVar72 <= ABS(dStack_258))) {\n          sVar49 = 1;\n        }\n        else {\n          sVar49 = 1;\n          pdVar11 = pdVar9 + 10;\n          do {\n            sVar49 = sVar49 + 1;\n            if (sVar49 == sVar40) {\n              LVar23 = draw_info->linecap;\n              sVar49 = sVar40;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar11 - *pdVar9;\n            dStack_258 = pdVar11[1] - pdVar9[1];\n          } while ((ABS(dStack_260) < dVar72) && (pdVar11 = pdVar11 + 5, ABS(dStack_258) < dVar72));\n        }\nLAB_000a5110:\n        uVar10 = sVar40 * 2;\n        pdVar11 = (double *)(**(code **)(puVar47 + 0x3047fc))(uVar10 + 0x618,0x10);\n        pdVar12 = (double *)(**(code **)(puVar47 + 0x3047fc))(uVar10 + 0x618,0x10);\n        if (pdVar11 == (double *)0x0) {\n          if (pdVar12 != (double *)0x0) {\n            (**(code **)(puVar47 + 0x3042b0))(pdVar12);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar47 + 0x3042b0))(pdVar9);\n          uVar37 = 0x1c93;\n          goto LAB_000a5724;\n        }\n        if (pdVar12 == (double *)0x0) {\n          (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n          goto LAB_000a6cbc;\n        }\n        if (ABS(dStack_260) < *(double *)(iVar8 + 0x13f8)) {\n          dVar72 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar63 = *(double *)(iVar13 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar63 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n        }\n        else if (ABS(dStack_258) < *(double *)(iVar8 + 0x13f8)) {\n          dVar63 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar72 = *(double *)(iVar13 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar63 = dStack_258 / dStack_260;\n          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a78) / dVar63;\n        }\nLAB_000a51b0:\n        dVar53 = (double)(**(code **)(puVar47 + 0x304288))(&draw_info->affine);\n        iVar13 = draw_info->miterlimit * draw_info->miterlimit;\n        dVar53 = dVar53 * draw_info->stroke_width *\n                 *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1400);\n        dVar57 = (double)iVar13;\n        if (iVar13 < 0) {\n          dVar57 = dVar57 + *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1418);\n        }\n        dVar57 = dVar57 * dVar53 * dVar53;\n        if (draw_info->linecap == SquareCap) {\n          iVar13 = *(int *)(puVar47 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar54 = 0.0;\n              if (sVar40 == 1) {\n                dVar64 = 0.0;\n                sVar35 = 1;\nLAB_000a6998:\n                pdVar16 = pdVar9 + (sVar35 - 1) * 5;\n              }\n              else {\n                pdVar16 = pdVar9 + 5;\n                dVar64 = 0.0;\n              }\n            }\n            else {\n              dVar75 = *(double *)(iVar8 + 0x13f8);\n              dVar64 = *pdVar9 - pdVar9[5];\n              dVar54 = pdVar9[1] - pdVar9[6];\n              if ((dVar75 <= ABS(dVar64)) || (dVar75 <= ABS(dVar54))) {\n                pdVar16 = pdVar9 + 5;\n              }\n              else {\n                sVar24 = 1;\n                pdVar28 = pdVar9 + 10;\n                do {\n                  pdVar16 = pdVar28;\n                  sVar24 = sVar24 + 1;\n                  sVar35 = sVar40;\n                  if (sVar24 == sVar40) goto LAB_000a6998;\n                  dVar64 = *pdVar9 - *pdVar16;\n                  dVar54 = pdVar9[1] - pdVar16[1];\n                } while ((ABS(dVar64) < dVar75) && (pdVar28 = pdVar16 + 5, ABS(dVar54) < dVar75));\n              }\n            }\n            dVar75 = (double)(**(code **)(puVar47 + 0x304a08))(dVar64,dVar54);\n            iVar13 = sVar40 - 2;\n            dVar61 = pdVar16[1];\n            pdVar43 = (double *)((int)pdVar9 + iVar44 + -0x28);\n            pdVar28 = pdVar9 + iVar13 * 5;\n            *pdVar9 = *pdVar16 + (dVar64 * (dVar53 + dVar75)) / dVar75;\n            pdVar9[1] = dVar61 + (dVar54 * (dVar53 + dVar75)) / dVar75;\n            if (-1 < iVar13) {\n              dVar75 = *(double *)(iVar8 + 0x13f8);\n              dVar64 = *pdVar43 - *pdVar28;\n              dVar54 = pdVar43[1] - pdVar28[1];\n              if (ABS(dVar64) < dVar75) {\n                pdVar16 = pdVar9 + (sVar40 - 3) * 5;\n                do {\n                  pdVar28 = pdVar16;\n                  if (dVar75 <= ABS(dVar54)) {\n                    pdVar28 = pdVar9 + iVar13 * 5;\n                    break;\n                  }\n                  iVar13 = iVar13 + -1;\n                  if (iVar13 == -1) break;\n                  dVar64 = *pdVar43 - *pdVar28;\n                  dVar54 = pdVar43[1] - pdVar28[1];\n                  pdVar16 = pdVar28 + -5;\n                } while (ABS(dVar64) < dVar75);\n              }\n            }\n            dVar75 = (double)(**(code **)(puVar47 + 0x304a08))(dVar64,dVar54);\n            dVar61 = pdVar28[1];\n            *pdVar43 = *pdVar28 + (dVar64 * (dVar53 + dVar75)) / dVar75;\n            pdVar43[1] = dVar61 + (dVar54 * (dVar53 + dVar75)) / dVar75;\n            goto LAB_000a5220;\n          }\n        }\n        else {\nLAB_000a5220:\n          iVar13 = *(int *)(puVar47 + 0x303bd0);\n        }\n        dVar54 = dVar53 * dVar53;\n        dVar64 = dVar54 / (dVar72 * dVar72 + *(double *)(iVar13 + 0x1438));\n        dVar75 = SQRT(dVar64);\n        if (dVar64 < 0.0) {\n          (**(code **)(puVar47 + 0x304770))();\n        }\n        dVar72 = dVar72 * dVar75;\n        pdVar16 = pdVar9 + sVar49 * 5;\n        dVar69 = *pdVar16;\n        dVar73 = pdVar16[1];\n        dVar68 = dVar72 + pdVar9[1];\n        dVar66 = pdVar9[1] - dVar72;\n        dVar64 = dVar75 + *pdVar9;\n        dStack_238 = dVar73 - dVar72;\n        dStack_240 = dVar69 - dVar75;\n        dVar67 = *pdVar9 - dVar75;\n        dVar62 = dVar67;\n        dVar61 = dVar68;\n        dStack_250 = dVar75 + dVar69;\n        dStack_248 = dVar72 + dVar73;\n        if (0.0 < dVar75 * dStack_258 - dVar72 * dStack_260) {\n          dVar62 = dVar64;\n          dVar61 = dVar66;\n          dVar64 = dVar67;\n          dVar66 = dVar68;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar75 + dVar69;\n          dStack_238 = dVar72 + dVar73;\n        }\n        sVar35 = sVar49 + 1;\n        *pdVar12 = dVar62;\n        pdVar12[1] = dVar66;\n        *pdVar11 = dVar64;\n        pdVar11[1] = dVar61;\n        if ((int)sVar35 < (int)sVar40) {\n          iVar27 = *(int *)(puVar47 + 0x303bd8);\n          iVar44 = 1;\n          iVar46 = 1;\n          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a78);\n          dVar75 = *(double *)(*(int *)(puVar47 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar10;\n          do {\n            dVar55 = pdVar16[6];\n            dVar58 = pdVar16[5];\n            dVar59 = dVar55 - dVar73;\n            dVar65 = dVar58 - dVar69;\n            dVar60 = dVar58 - dVar69;\n            dVar67 = dStack_238;\n            dVar68 = dStack_240;\n            dVar70 = dStack_248;\n            dVar74 = dStack_250;\n            if (*(double *)(iVar27 + -0x2e38) <=\n                dVar65 * dVar65 + (dVar55 - dVar73) * (dVar55 - dVar73)) {\n              if (ABS(dVar65) < *(double *)(iVar8 + 0x13f8)) {\n                dVar67 = 0.0;\n                dVar68 = dVar54;\n                if (0.0 <= dVar65) {\n                  if (0.0 <= dVar55 - dVar73) goto LAB_000a53e0;\n                }\n                else if (dVar55 - dVar73 < 0.0) {\nLAB_000a53e0:\n                  dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar59) < *(double *)(iVar8 + 0x13f8)) {\n                dVar65 = 0.0;\n                dVar68 = dVar54 / dVar75;\n                if (0.0 <= dVar55 - dVar73) {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (dVar58 - dVar69 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (0.0 <= dVar58 - dVar69) {\nLAB_000a5880:\n                    dVar67 = *(double *)(iVar30 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar67 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar65 = (dVar55 - dVar73) / (dVar58 - dVar69);\n                dVar67 = dVar72 / dVar65;\n                dVar68 = dVar54 / (dVar67 * dVar67 + *(double *)(iVar13 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar28 = pdVar9 + sVar49 * 5;\n              dVar70 = SQRT(dVar68);\n              if (dVar68 < 0.0) {\n                (**(code **)(puVar47 + 0x304770))();\n                dVar69 = *pdVar28;\n                dVar73 = pdVar28[1];\n                dVar58 = pdVar16[5];\n                dVar55 = pdVar16[6];\n              }\n              dVar67 = dVar67 * dVar70;\n              dStack_2a8 = dVar58 - dVar70;\n              dStack_2a0 = dVar55 - dVar67;\n              dStack_278 = dVar69 - dVar70;\n              dStack_270 = dVar73 - dVar67;\n              dStack_2b8 = dVar70 + dVar58;\n              dStack_2b0 = dVar67 + dVar55;\n              dStack_288 = dVar70 + dVar69;\n              dStack_280 = dVar67 + dVar73;\n              if (0.0 < dVar59 * dVar70 - dVar60 * dVar67) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar70 + dVar58;\n                dStack_2a0 = dVar67 + dVar55;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar70 + dVar69;\n                dStack_270 = dVar67 + dVar73;\n              }\n              dVar67 = dVar63 - dVar65;\n              dVar69 = dStack_250;\n              dVar73 = dStack_248;\n              dVar55 = dStack_238;\n              dVar58 = dStack_240;\n              if (*(double *)(iVar8 + 0x13f8) <= ABS(dVar67)) {\n                dVar69 = (((dVar64 * dVar63 - dVar61) - dVar65 * dStack_2b8) + dStack_2b0) / dVar67;\n                dVar58 = (((dVar63 * dVar62 - dVar66) - dVar65 * dStack_2a8) + dStack_2a0) / dVar67;\n                dVar73 = (dVar69 - dVar64) * dVar63 + dVar61;\n                dVar55 = (dVar58 - dVar62) * dVar63 + dVar66;\n              }\n              if ((int)uStack_22c <= iVar46 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar11 = (double *)\n                            (**(code **)(puVar47 + 0x304710))(pdVar11,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                }\n              }\n              if (iVar44 + 0x618 < (int)uVar10) {\n                if (pdVar11 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a5710:\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar10) {\n                  pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  if (pdVar11 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar12 != (double *)0x0) goto LAB_000a5700;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar48)(pdVar9);\n                  uVar37 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar12 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                uVar10 = uVar10 + 0x618;\n                if (pdVar11 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar12 == (double *)0x0) {\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  goto LAB_000a5710;\n                }\n              }\n              LVar14 = draw_info->linejoin;\n              dVar62 = dStack_278;\n              dVar61 = dStack_280;\n              dVar64 = dStack_288;\n              dVar66 = dStack_270;\n              sVar49 = sVar35;\n              dVar63 = dVar65;\n              if (dVar60 * dStack_258 - dVar59 * dStack_260 <= 0.0) {\n                if (LVar14 != RoundJoin) {\n                  if (LVar14 == BevelJoin) {\n                    pdVar28 = pdVar11 + iVar46 * 2;\n                    pdVar12[iVar44 * 2] = dStack_240;\n                    (pdVar12 + iVar44 * 2)[1] = dStack_238;\n                    pdVar12[iVar44 * 2 + 2] = dStack_278;\n                    (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if (dVar57 < (dVar58 - dVar69) * (dVar58 - dVar69) +\n                                   (dVar55 - dVar73) * (dVar55 - dVar73)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar44 = iVar44 + 1;\n                      iVar46 = iVar46 + 1;\n                      *pdVar43 = dVar58;\n                      pdVar43[1] = dVar55;\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar30 = iVar46 + 1;\n                pdVar43 = pdVar11 + iVar46 * 2;\n                if ((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57) {\n                  *pdVar43 = dVar69;\n                  pdVar43[1] = dVar73;\n                }\n                else {\n                  iVar30 = iVar46 + 2;\n                  *pdVar43 = dStack_250;\n                  pdVar43[1] = dStack_248;\n                  pdVar11[iVar46 * 2 + 2] = dStack_288;\n                  (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                }\n                dVar69 = *pdVar28;\n                dVar68 = pdVar28[1];\n                dVar63 = dVar68;\n                dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_238 - dVar68,dStack_240 - dVar69);\n                dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_270 - dVar63,dStack_278 - dVar69);\n                if (dVar63 < dVar67) {\n                  dVar63 = dVar63 + *(double *)(iVar26 + 0x34a0);\n                }\n                dVar63 = dVar63 - dVar67;\n                dVar73 = *(double *)(iVar13 + 0x1438) / dVar53;\n                dVar70 = SQRT(dVar73);\n                if (dVar73 < 0.0) {\n                  (**(code **)(puVar47 + 0x304770))();\n                }\n                dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar63 / (dVar70 + dVar70));\n                dVar70 = *(double *)(iVar22 + 0x1410);\n                if (dVar73 < dVar70) {\n                  uVar42 = (uint)dVar73;\n                }\n                else {\n                  uVar42 = (int)(dVar73 - dVar70) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar30 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar46 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar11,iVar46,0x10);\n                  }\n                  else {\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  }\n                }\n                if (uVar42 + 0x618 < 0x4000001) {\n                  if ((int)uVar10 <= (int)(iVar44 + 0x618 + uVar42)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uVar10 < uVar42 + 0x618) goto LAB_000a67d4;\n                    iVar46 = uVar42 + uVar10;\n                    uVar10 = iVar46 + 0x618;\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,iVar46 + 0xc30,0x10);\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar11 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a6d2c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar12 = (double *)(*pcVar48)(pdVar12);\nLAB_000a64c4:\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a6884;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar28 = pdVar12 + iVar44 * 2;\n                *pdVar28 = dStack_240;\n                pdVar28[1] = dStack_238;\n                if (1 < (int)uVar42) {\n                  uVar71 = *(undefined8 *)(iVar26 + 0x34a0);\n                  uVar41 = 1;\n                  do {\n                    uVar45 = uVar41 + 1;\n                    dVar70 = ((double)(int)uVar41 * dVar63) / (double)(int)uVar42 + dVar67;\n                    uVar56 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar56);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar69;\n                    uVar56 = (*pcVar48)(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar56);\n                    pdVar28[3] = dVar53 * dVar73 + dVar68;\n                    uVar41 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar42);\n                }\n                *pdVar12 = dStack_278;\n                pdVar12[1] = dStack_270;\n                dStack_258 = dVar59;\n                dStack_260 = dVar60;\n                dVar67 = dStack_2a0;\n                dVar68 = dStack_2a8;\n                dVar70 = dStack_2b0;\n                dVar74 = dStack_2b8;\n                iVar44 = 1;\n                iVar46 = iVar30;\n                dVar63 = dVar65;\n              }\n              else {\n                if (LVar14 != RoundJoin) {\n                  if (LVar14 == BevelJoin) {\n                    iVar30 = iVar46 * 2;\n                    iVar3 = iVar46 * 2;\n                    iVar46 = iVar46 + 2;\n                    pdVar11[iVar30] = dStack_250;\n                    (pdVar11 + iVar30)[1] = dStack_248;\n                    pdVar28 = pdVar12 + iVar44 * 2;\n                    pdVar11[iVar3 + 2] = dStack_288;\n                    (pdVar11 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar58;\n                      pdVar28[1] = dVar55;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_240;\n                      pdVar28[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                          (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar43 = dStack_240;\n                      pdVar43[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar30 = iVar44 + 1;\n                pdVar43 = pdVar12 + iVar44 * 2;\n                if ((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57) {\n                  *pdVar43 = dVar58;\n                  pdVar43[1] = dVar55;\n                }\n                else {\n                  iVar30 = iVar44 + 2;\n                  *pdVar43 = dStack_240;\n                  pdVar43[1] = dStack_238;\n                  pdVar12[iVar44 * 2 + 2] = dStack_278;\n                  (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                }\n                dVar68 = *pdVar28;\n                dVar69 = pdVar28[1];\n                dVar63 = dVar68;\n                dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_248 - dVar69,dStack_250 - dVar68);\n                dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_280 - dVar69,dStack_288 - dVar63);\n                if (dVar67 < dVar63) {\n                  dVar67 = dVar67 + *(double *)(iVar26 + 0x34a0);\n                }\n                dVar73 = dVar67 - dVar63;\n                dVar70 = *(double *)(iVar13 + 0x1438) / dVar53;\n                dVar74 = SQRT(dVar70);\n                if (dVar70 < 0.0) {\n                  (**(code **)(puVar47 + 0x304770))();\n                }\n                dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar73 / (dVar74 + dVar74));\n                if (dVar73 < dVar51) {\n                  uVar41 = (uint)dVar73;\n                  uVar42 = uVar41 + 0x618;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                  if (uVar42 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar11 = (double *)(*pcVar48)(pdVar11);\n                }\n                else {\n                  uVar41 = (int)(dVar73 - dVar51) | 0x80000000;\n                  uVar42 = uVar41 + 0x618;\n                  if (0x4000000 < uVar42) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar46 + 0x618 + uVar41)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uStack_22c < uVar42) goto LAB_000a66a4;\n                    iVar44 = uStack_22c + uVar41;\n                    uStack_22c = iVar44 + 0x618;\n                    pdVar11 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar11,iVar44 + 0xc30,0x10);\n                  }\n                }\n                if (iVar30 + 0x618 < (int)uVar10) {\n                  if (pdVar11 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a665c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar10 < 0xfffff9e8) {\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                    uVar10 = uVar10 + 0x618;\n                  }\n                  else {\n                    pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  }\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a664c;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar28 = pdVar11 + iVar46 * 2;\n                *pdVar28 = dStack_250;\n                pdVar28[1] = dStack_248;\n                if (1 < (int)uVar41) {\n                  dVar63 = dVar63 - dVar67;\n                  uVar42 = 1;\n                  do {\n                    uVar45 = uVar42 + 1;\n                    dVar70 = ((double)(int)uVar42 * dVar63) / (double)(int)uVar41 + dVar67;\n                    uVar71 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar71);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar68;\n                    uVar71 = (*pcVar48)(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar71);\n                    pdVar28[3] = dVar53 * dVar73 + dVar69;\n                    uVar42 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar41);\n                }\n                *pdVar11 = dStack_288;\n                pdVar11[1] = dStack_280;\n                dStack_258 = dVar59;\n                dStack_260 = dVar60;\n                dVar67 = dStack_2a0;\n                dVar68 = dStack_2a8;\n                dVar70 = dStack_2b0;\n                dVar74 = dStack_2b8;\n                iVar44 = iVar30;\n                iVar46 = 1;\n                dVar63 = dVar65;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar74;\n            dStack_248 = dVar70;\n            dStack_240 = dVar68;\n            dStack_238 = dVar67;\n            if (sVar35 + 1 == sVar40) goto LAB_000a5a58;\n            pdVar16 = pdVar16 + 5;\n            sVar35 = sVar35 + 1;\n            dVar69 = pdVar9[sVar49 * 5];\n            dVar73 = (pdVar9 + sVar49 * 5)[1];\n          } while( true );\n        }\n        iVar44 = 4;\n        iVar27 = 0x10;\n        iVar46 = 0x10;\n        iVar13 = 2;\n        goto LAB_000a5a70;\n      }\n      bVar1 = (int)sVar40 < 2;\n      iStack_188 = 0;\n      bVar2 = false;\n      *(size_t *)((int)pdVar11 + 0x14) = 0;\n      if (!bVar1) goto LAB_000a4fe8;\nLAB_000a6124:\n      if (sVar40 != 1) {\n        sVar49 = 1;\n        dStack_258 = 0.0;\n        dStack_260 = 0.0;\n        goto LAB_000a5110;\n      }\n      sVar49 = 1;\n      dStack_258 = 0.0;\n      LVar23 = draw_info->linecap;\n      dStack_260 = 0.0;\njoined_r0x000a50f8:\n      if (LVar23 == RoundCap) {\n        pcVar48 = *(code **)(puVar47 + 0x304644);\n        if (!bVar2) {\n          sVar49 = sVar49 - 1;\n          goto LAB_000a5110;\n        }\n      }\n      else {\n        pcVar48 = *(code **)(puVar47 + 0x304644);\n      }\n      pPVar18 = (PrimitiveInfo *)(*pcVar48)(0x28);\n      pdVar11 = pdVar9;\n      pPVar17 = pPVar18;\n      do {\n        pPVar36 = pPVar17;\n        pdVar12 = pdVar11;\n        pdVar11 = pdVar12 + 2;\n        sVar35 = *(size_t *)((int)pdVar12 + 4);\n        sVar49 = *(size_t *)(pdVar12 + 1);\n        sVar40 = *(size_t *)((int)pdVar12 + 0xc);\n        *(size_t *)&(pPVar36->point).x = *(size_t *)pdVar12;\n        *(size_t *)((int)&(pPVar36->point).x + 4) = sVar35;\n        *(size_t *)&(pPVar36->point).y = sVar49;\n        *(size_t *)((int)&(pPVar36->point).y + 4) = sVar40;\n        pPVar17 = (PrimitiveInfo *)&pPVar36->coordinates;\n      } while (pdVar11 != pdVar9 + 4);\n      PVar5 = *(PrimitiveType *)((int)pdVar12 + 0x14);\n      pcVar48 = *(code **)(puVar47 + 0x3042b0);\n      pPVar36->coordinates = *(size_t *)pdVar11;\n      pPVar36->primitive = PVar5;\n      pPVar18->coordinates = 0;\n      (*pcVar48)(pdVar9);\n      goto LAB_000a61cc;\n    }" { (expression_statement "iVar44 = sVar40 * 0x28;" (assignment_expression "iVar44 = sVar40 * 0x28" identifier = (binary_expression "sVar40 * 0x28" identifier * number_literal)) ;) (expression_statement "(**(code **)(puVar47 + 0x304648))(pdVar9,pPStack_e8,iVar44);" (call_expression "(**(code **)(puVar47 + 0x304648))(pdVar9,pPStack_e8,iVar44)" (parenthesized_expression "(**(code **)(puVar47 + 0x304648))" ( (pointer_expression "**(code **)(puVar47 + 0x304648)" * (pointer_expression "*(code **)(puVar47 + 0x304648)" * (cast_expression "(code **)(puVar47 + 0x304648)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x304648)" ( (binary_expression "puVar47 + 0x304648" identifier + number_literal) ))))) )) (argument_list "(pdVar9,pPStack_e8,iVar44)" ( identifier , identifier , identifier ))) ;) (expression_statement "pdVar11 = pdVar9 + sVar40 * 5;" (assignment_expression "pdVar11 = pdVar9 + sVar40 * 5" identifier = (binary_expression "pdVar9 + sVar40 * 5" identifier + (binary_expression "sVar40 * 5" identifier * number_literal))) ;) (if_statement "if ((ABS(pPStack_e8[sVar40 - 1].point.x - (pPStack_e8->point).x) < dVar50) &&\n         (ABS(pPStack_e8[sVar40 - 1].point.y - (pPStack_e8->point).y) < dVar50)) {\n        if (draw_info->linejoin - MiterJoin < 2) {\n          pPVar18 = pPStack_e8 + 1;\n          do {\n            pdVar12 = pdVar11;\n            pPVar17 = pPVar18;\n            pPVar18 = (PrimitiveInfo *)&pPVar17->coordinates;\n            sVar24 = *(size_t *)&(pPVar17->point).y;\n            sVar49 = *(size_t *)((int)&(pPVar17->point).y + 4);\n            sVar35 = *(size_t *)&(pPVar17->point).x;\n            *(size_t *)((int)pdVar12 + 4) = *(size_t *)((int)&(pPVar17->point).x + 4);\n            *(size_t *)(pdVar12 + 1) = sVar24;\n            *(size_t *)pdVar12 = sVar35;\n            *(size_t *)((int)pdVar12 + 0xc) = sVar49;\n            pdVar11 = pdVar12 + 2;\n          } while (pPVar18 != (PrimitiveInfo *)&pPStack_e8[1].closed_subpath);\n          iVar44 = iVar44 + 0x28;\n          sVar49 = *(size_t *)pPVar18;\n          pdVar11 = pdVar9 + sVar40 * 5 + 5;\n          *(PrimitiveType *)((int)pdVar12 + 0x14) = pPVar17->primitive;\n          *(size_t *)(pdVar12 + 2) = sVar49;\n          sVar40 = sVar40 + 1;\n        }\n        iStack_188 = 1;\n        bVar2 = true;\n        bVar1 = (int)sVar40 < 2;\n        *(size_t *)((int)pdVar11 + 0x14) = 0;\n        if (bVar1) goto LAB_000a6124;\nLAB_000a4fe8:\n        dVar72 = *(double *)(iVar8 + 0x13f8);\n        dStack_260 = pdVar9[5] - *pdVar9;\n        dStack_258 = pdVar9[6] - pdVar9[1];\n        if ((dVar72 <= ABS(dStack_260)) || (dVar72 <= ABS(dStack_258))) {\n          sVar49 = 1;\n        }\n        else {\n          sVar49 = 1;\n          pdVar11 = pdVar9 + 10;\n          do {\n            sVar49 = sVar49 + 1;\n            if (sVar49 == sVar40) {\n              LVar23 = draw_info->linecap;\n              sVar49 = sVar40;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar11 - *pdVar9;\n            dStack_258 = pdVar11[1] - pdVar9[1];\n          } while ((ABS(dStack_260) < dVar72) && (pdVar11 = pdVar11 + 5, ABS(dStack_258) < dVar72));\n        }\nLAB_000a5110:\n        uVar10 = sVar40 * 2;\n        pdVar11 = (double *)(**(code **)(puVar47 + 0x3047fc))(uVar10 + 0x618,0x10);\n        pdVar12 = (double *)(**(code **)(puVar47 + 0x3047fc))(uVar10 + 0x618,0x10);\n        if (pdVar11 == (double *)0x0) {\n          if (pdVar12 != (double *)0x0) {\n            (**(code **)(puVar47 + 0x3042b0))(pdVar12);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar47 + 0x3042b0))(pdVar9);\n          uVar37 = 0x1c93;\n          goto LAB_000a5724;\n        }\n        if (pdVar12 == (double *)0x0) {\n          (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n          goto LAB_000a6cbc;\n        }\n        if (ABS(dStack_260) < *(double *)(iVar8 + 0x13f8)) {\n          dVar72 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar63 = *(double *)(iVar13 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar63 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n        }\n        else if (ABS(dStack_258) < *(double *)(iVar8 + 0x13f8)) {\n          dVar63 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar72 = *(double *)(iVar13 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar63 = dStack_258 / dStack_260;\n          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a78) / dVar63;\n        }\nLAB_000a51b0:\n        dVar53 = (double)(**(code **)(puVar47 + 0x304288))(&draw_info->affine);\n        iVar13 = draw_info->miterlimit * draw_info->miterlimit;\n        dVar53 = dVar53 * draw_info->stroke_width *\n                 *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1400);\n        dVar57 = (double)iVar13;\n        if (iVar13 < 0) {\n          dVar57 = dVar57 + *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1418);\n        }\n        dVar57 = dVar57 * dVar53 * dVar53;\n        if (draw_info->linecap == SquareCap) {\n          iVar13 = *(int *)(puVar47 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar54 = 0.0;\n              if (sVar40 == 1) {\n                dVar64 = 0.0;\n                sVar35 = 1;\nLAB_000a6998:\n                pdVar16 = pdVar9 + (sVar35 - 1) * 5;\n              }\n              else {\n                pdVar16 = pdVar9 + 5;\n                dVar64 = 0.0;\n              }\n            }\n            else {\n              dVar75 = *(double *)(iVar8 + 0x13f8);\n              dVar64 = *pdVar9 - pdVar9[5];\n              dVar54 = pdVar9[1] - pdVar9[6];\n              if ((dVar75 <= ABS(dVar64)) || (dVar75 <= ABS(dVar54))) {\n                pdVar16 = pdVar9 + 5;\n              }\n              else {\n                sVar24 = 1;\n                pdVar28 = pdVar9 + 10;\n                do {\n                  pdVar16 = pdVar28;\n                  sVar24 = sVar24 + 1;\n                  sVar35 = sVar40;\n                  if (sVar24 == sVar40) goto LAB_000a6998;\n                  dVar64 = *pdVar9 - *pdVar16;\n                  dVar54 = pdVar9[1] - pdVar16[1];\n                } while ((ABS(dVar64) < dVar75) && (pdVar28 = pdVar16 + 5, ABS(dVar54) < dVar75));\n              }\n            }\n            dVar75 = (double)(**(code **)(puVar47 + 0x304a08))(dVar64,dVar54);\n            iVar13 = sVar40 - 2;\n            dVar61 = pdVar16[1];\n            pdVar43 = (double *)((int)pdVar9 + iVar44 + -0x28);\n            pdVar28 = pdVar9 + iVar13 * 5;\n            *pdVar9 = *pdVar16 + (dVar64 * (dVar53 + dVar75)) / dVar75;\n            pdVar9[1] = dVar61 + (dVar54 * (dVar53 + dVar75)) / dVar75;\n            if (-1 < iVar13) {\n              dVar75 = *(double *)(iVar8 + 0x13f8);\n              dVar64 = *pdVar43 - *pdVar28;\n              dVar54 = pdVar43[1] - pdVar28[1];\n              if (ABS(dVar64) < dVar75) {\n                pdVar16 = pdVar9 + (sVar40 - 3) * 5;\n                do {\n                  pdVar28 = pdVar16;\n                  if (dVar75 <= ABS(dVar54)) {\n                    pdVar28 = pdVar9 + iVar13 * 5;\n                    break;\n                  }\n                  iVar13 = iVar13 + -1;\n                  if (iVar13 == -1) break;\n                  dVar64 = *pdVar43 - *pdVar28;\n                  dVar54 = pdVar43[1] - pdVar28[1];\n                  pdVar16 = pdVar28 + -5;\n                } while (ABS(dVar64) < dVar75);\n              }\n            }\n            dVar75 = (double)(**(code **)(puVar47 + 0x304a08))(dVar64,dVar54);\n            dVar61 = pdVar28[1];\n            *pdVar43 = *pdVar28 + (dVar64 * (dVar53 + dVar75)) / dVar75;\n            pdVar43[1] = dVar61 + (dVar54 * (dVar53 + dVar75)) / dVar75;\n            goto LAB_000a5220;\n          }\n        }\n        else {\nLAB_000a5220:\n          iVar13 = *(int *)(puVar47 + 0x303bd0);\n        }\n        dVar54 = dVar53 * dVar53;\n        dVar64 = dVar54 / (dVar72 * dVar72 + *(double *)(iVar13 + 0x1438));\n        dVar75 = SQRT(dVar64);\n        if (dVar64 < 0.0) {\n          (**(code **)(puVar47 + 0x304770))();\n        }\n        dVar72 = dVar72 * dVar75;\n        pdVar16 = pdVar9 + sVar49 * 5;\n        dVar69 = *pdVar16;\n        dVar73 = pdVar16[1];\n        dVar68 = dVar72 + pdVar9[1];\n        dVar66 = pdVar9[1] - dVar72;\n        dVar64 = dVar75 + *pdVar9;\n        dStack_238 = dVar73 - dVar72;\n        dStack_240 = dVar69 - dVar75;\n        dVar67 = *pdVar9 - dVar75;\n        dVar62 = dVar67;\n        dVar61 = dVar68;\n        dStack_250 = dVar75 + dVar69;\n        dStack_248 = dVar72 + dVar73;\n        if (0.0 < dVar75 * dStack_258 - dVar72 * dStack_260) {\n          dVar62 = dVar64;\n          dVar61 = dVar66;\n          dVar64 = dVar67;\n          dVar66 = dVar68;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar75 + dVar69;\n          dStack_238 = dVar72 + dVar73;\n        }\n        sVar35 = sVar49 + 1;\n        *pdVar12 = dVar62;\n        pdVar12[1] = dVar66;\n        *pdVar11 = dVar64;\n        pdVar11[1] = dVar61;\n        if ((int)sVar35 < (int)sVar40) {\n          iVar27 = *(int *)(puVar47 + 0x303bd8);\n          iVar44 = 1;\n          iVar46 = 1;\n          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a78);\n          dVar75 = *(double *)(*(int *)(puVar47 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar10;\n          do {\n            dVar55 = pdVar16[6];\n            dVar58 = pdVar16[5];\n            dVar59 = dVar55 - dVar73;\n            dVar65 = dVar58 - dVar69;\n            dVar60 = dVar58 - dVar69;\n            dVar67 = dStack_238;\n            dVar68 = dStack_240;\n            dVar70 = dStack_248;\n            dVar74 = dStack_250;\n            if (*(double *)(iVar27 + -0x2e38) <=\n                dVar65 * dVar65 + (dVar55 - dVar73) * (dVar55 - dVar73)) {\n              if (ABS(dVar65) < *(double *)(iVar8 + 0x13f8)) {\n                dVar67 = 0.0;\n                dVar68 = dVar54;\n                if (0.0 <= dVar65) {\n                  if (0.0 <= dVar55 - dVar73) goto LAB_000a53e0;\n                }\n                else if (dVar55 - dVar73 < 0.0) {\nLAB_000a53e0:\n                  dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar59) < *(double *)(iVar8 + 0x13f8)) {\n                dVar65 = 0.0;\n                dVar68 = dVar54 / dVar75;\n                if (0.0 <= dVar55 - dVar73) {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (dVar58 - dVar69 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (0.0 <= dVar58 - dVar69) {\nLAB_000a5880:\n                    dVar67 = *(double *)(iVar30 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar67 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar65 = (dVar55 - dVar73) / (dVar58 - dVar69);\n                dVar67 = dVar72 / dVar65;\n                dVar68 = dVar54 / (dVar67 * dVar67 + *(double *)(iVar13 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar28 = pdVar9 + sVar49 * 5;\n              dVar70 = SQRT(dVar68);\n              if (dVar68 < 0.0) {\n                (**(code **)(puVar47 + 0x304770))();\n                dVar69 = *pdVar28;\n                dVar73 = pdVar28[1];\n                dVar58 = pdVar16[5];\n                dVar55 = pdVar16[6];\n              }\n              dVar67 = dVar67 * dVar70;\n              dStack_2a8 = dVar58 - dVar70;\n              dStack_2a0 = dVar55 - dVar67;\n              dStack_278 = dVar69 - dVar70;\n              dStack_270 = dVar73 - dVar67;\n              dStack_2b8 = dVar70 + dVar58;\n              dStack_2b0 = dVar67 + dVar55;\n              dStack_288 = dVar70 + dVar69;\n              dStack_280 = dVar67 + dVar73;\n              if (0.0 < dVar59 * dVar70 - dVar60 * dVar67) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar70 + dVar58;\n                dStack_2a0 = dVar67 + dVar55;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar70 + dVar69;\n                dStack_270 = dVar67 + dVar73;\n              }\n              dVar67 = dVar63 - dVar65;\n              dVar69 = dStack_250;\n              dVar73 = dStack_248;\n              dVar55 = dStack_238;\n              dVar58 = dStack_240;\n              if (*(double *)(iVar8 + 0x13f8) <= ABS(dVar67)) {\n                dVar69 = (((dVar64 * dVar63 - dVar61) - dVar65 * dStack_2b8) + dStack_2b0) / dVar67;\n                dVar58 = (((dVar63 * dVar62 - dVar66) - dVar65 * dStack_2a8) + dStack_2a0) / dVar67;\n                dVar73 = (dVar69 - dVar64) * dVar63 + dVar61;\n                dVar55 = (dVar58 - dVar62) * dVar63 + dVar66;\n              }\n              if ((int)uStack_22c <= iVar46 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar11 = (double *)\n                            (**(code **)(puVar47 + 0x304710))(pdVar11,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                }\n              }\n              if (iVar44 + 0x618 < (int)uVar10) {\n                if (pdVar11 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a5710:\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar10) {\n                  pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  if (pdVar11 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar12 != (double *)0x0) goto LAB_000a5700;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar48)(pdVar9);\n                  uVar37 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar12 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                uVar10 = uVar10 + 0x618;\n                if (pdVar11 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar12 == (double *)0x0) {\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  goto LAB_000a5710;\n                }\n              }\n              LVar14 = draw_info->linejoin;\n              dVar62 = dStack_278;\n              dVar61 = dStack_280;\n              dVar64 = dStack_288;\n              dVar66 = dStack_270;\n              sVar49 = sVar35;\n              dVar63 = dVar65;\n              if (dVar60 * dStack_258 - dVar59 * dStack_260 <= 0.0) {\n                if (LVar14 != RoundJoin) {\n                  if (LVar14 == BevelJoin) {\n                    pdVar28 = pdVar11 + iVar46 * 2;\n                    pdVar12[iVar44 * 2] = dStack_240;\n                    (pdVar12 + iVar44 * 2)[1] = dStack_238;\n                    pdVar12[iVar44 * 2 + 2] = dStack_278;\n                    (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if (dVar57 < (dVar58 - dVar69) * (dVar58 - dVar69) +\n                                   (dVar55 - dVar73) * (dVar55 - dVar73)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar44 = iVar44 + 1;\n                      iVar46 = iVar46 + 1;\n                      *pdVar43 = dVar58;\n                      pdVar43[1] = dVar55;\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar30 = iVar46 + 1;\n                pdVar43 = pdVar11 + iVar46 * 2;\n                if ((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57) {\n                  *pdVar43 = dVar69;\n                  pdVar43[1] = dVar73;\n                }\n                else {\n                  iVar30 = iVar46 + 2;\n                  *pdVar43 = dStack_250;\n                  pdVar43[1] = dStack_248;\n                  pdVar11[iVar46 * 2 + 2] = dStack_288;\n                  (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                }\n                dVar69 = *pdVar28;\n                dVar68 = pdVar28[1];\n                dVar63 = dVar68;\n                dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_238 - dVar68,dStack_240 - dVar69);\n                dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_270 - dVar63,dStack_278 - dVar69);\n                if (dVar63 < dVar67) {\n                  dVar63 = dVar63 + *(double *)(iVar26 + 0x34a0);\n                }\n                dVar63 = dVar63 - dVar67;\n                dVar73 = *(double *)(iVar13 + 0x1438) / dVar53;\n                dVar70 = SQRT(dVar73);\n                if (dVar73 < 0.0) {\n                  (**(code **)(puVar47 + 0x304770))();\n                }\n                dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar63 / (dVar70 + dVar70));\n                dVar70 = *(double *)(iVar22 + 0x1410);\n                if (dVar73 < dVar70) {\n                  uVar42 = (uint)dVar73;\n                }\n                else {\n                  uVar42 = (int)(dVar73 - dVar70) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar30 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar46 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar11,iVar46,0x10);\n                  }\n                  else {\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  }\n                }\n                if (uVar42 + 0x618 < 0x4000001) {\n                  if ((int)uVar10 <= (int)(iVar44 + 0x618 + uVar42)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uVar10 < uVar42 + 0x618) goto LAB_000a67d4;\n                    iVar46 = uVar42 + uVar10;\n                    uVar10 = iVar46 + 0x618;\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,iVar46 + 0xc30,0x10);\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar11 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a6d2c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar12 = (double *)(*pcVar48)(pdVar12);\nLAB_000a64c4:\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a6884;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar28 = pdVar12 + iVar44 * 2;\n                *pdVar28 = dStack_240;\n                pdVar28[1] = dStack_238;\n                if (1 < (int)uVar42) {\n                  uVar71 = *(undefined8 *)(iVar26 + 0x34a0);\n                  uVar41 = 1;\n                  do {\n                    uVar45 = uVar41 + 1;\n                    dVar70 = ((double)(int)uVar41 * dVar63) / (double)(int)uVar42 + dVar67;\n                    uVar56 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar56);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar69;\n                    uVar56 = (*pcVar48)(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar56);\n                    pdVar28[3] = dVar53 * dVar73 + dVar68;\n                    uVar41 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar42);\n                }\n                *pdVar12 = dStack_278;\n                pdVar12[1] = dStack_270;\n                dStack_258 = dVar59;\n                dStack_260 = dVar60;\n                dVar67 = dStack_2a0;\n                dVar68 = dStack_2a8;\n                dVar70 = dStack_2b0;\n                dVar74 = dStack_2b8;\n                iVar44 = 1;\n                iVar46 = iVar30;\n                dVar63 = dVar65;\n              }\n              else {\n                if (LVar14 != RoundJoin) {\n                  if (LVar14 == BevelJoin) {\n                    iVar30 = iVar46 * 2;\n                    iVar3 = iVar46 * 2;\n                    iVar46 = iVar46 + 2;\n                    pdVar11[iVar30] = dStack_250;\n                    (pdVar11 + iVar30)[1] = dStack_248;\n                    pdVar28 = pdVar12 + iVar44 * 2;\n                    pdVar11[iVar3 + 2] = dStack_288;\n                    (pdVar11 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar58;\n                      pdVar28[1] = dVar55;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_240;\n                      pdVar28[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                          (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar43 = dStack_240;\n                      pdVar43[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar30 = iVar44 + 1;\n                pdVar43 = pdVar12 + iVar44 * 2;\n                if ((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57) {\n                  *pdVar43 = dVar58;\n                  pdVar43[1] = dVar55;\n                }\n                else {\n                  iVar30 = iVar44 + 2;\n                  *pdVar43 = dStack_240;\n                  pdVar43[1] = dStack_238;\n                  pdVar12[iVar44 * 2 + 2] = dStack_278;\n                  (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                }\n                dVar68 = *pdVar28;\n                dVar69 = pdVar28[1];\n                dVar63 = dVar68;\n                dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_248 - dVar69,dStack_250 - dVar68);\n                dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_280 - dVar69,dStack_288 - dVar63);\n                if (dVar67 < dVar63) {\n                  dVar67 = dVar67 + *(double *)(iVar26 + 0x34a0);\n                }\n                dVar73 = dVar67 - dVar63;\n                dVar70 = *(double *)(iVar13 + 0x1438) / dVar53;\n                dVar74 = SQRT(dVar70);\n                if (dVar70 < 0.0) {\n                  (**(code **)(puVar47 + 0x304770))();\n                }\n                dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar73 / (dVar74 + dVar74));\n                if (dVar73 < dVar51) {\n                  uVar41 = (uint)dVar73;\n                  uVar42 = uVar41 + 0x618;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                  if (uVar42 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar11 = (double *)(*pcVar48)(pdVar11);\n                }\n                else {\n                  uVar41 = (int)(dVar73 - dVar51) | 0x80000000;\n                  uVar42 = uVar41 + 0x618;\n                  if (0x4000000 < uVar42) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar46 + 0x618 + uVar41)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uStack_22c < uVar42) goto LAB_000a66a4;\n                    iVar44 = uStack_22c + uVar41;\n                    uStack_22c = iVar44 + 0x618;\n                    pdVar11 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar11,iVar44 + 0xc30,0x10);\n                  }\n                }\n                if (iVar30 + 0x618 < (int)uVar10) {\n                  if (pdVar11 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a665c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar10 < 0xfffff9e8) {\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                    uVar10 = uVar10 + 0x618;\n                  }\n                  else {\n                    pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  }\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a664c;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar28 = pdVar11 + iVar46 * 2;\n                *pdVar28 = dStack_250;\n                pdVar28[1] = dStack_248;\n                if (1 < (int)uVar41) {\n                  dVar63 = dVar63 - dVar67;\n                  uVar42 = 1;\n                  do {\n                    uVar45 = uVar42 + 1;\n                    dVar70 = ((double)(int)uVar42 * dVar63) / (double)(int)uVar41 + dVar67;\n                    uVar71 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar71);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar68;\n                    uVar71 = (*pcVar48)(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar71);\n                    pdVar28[3] = dVar53 * dVar73 + dVar69;\n                    uVar42 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar41);\n                }\n                *pdVar11 = dStack_288;\n                pdVar11[1] = dStack_280;\n                dStack_258 = dVar59;\n                dStack_260 = dVar60;\n                dVar67 = dStack_2a0;\n                dVar68 = dStack_2a8;\n                dVar70 = dStack_2b0;\n                dVar74 = dStack_2b8;\n                iVar44 = iVar30;\n                iVar46 = 1;\n                dVar63 = dVar65;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar74;\n            dStack_248 = dVar70;\n            dStack_240 = dVar68;\n            dStack_238 = dVar67;\n            if (sVar35 + 1 == sVar40) goto LAB_000a5a58;\n            pdVar16 = pdVar16 + 5;\n            sVar35 = sVar35 + 1;\n            dVar69 = pdVar9[sVar49 * 5];\n            dVar73 = (pdVar9 + sVar49 * 5)[1];\n          } while( true );\n        }\n        iVar44 = 4;\n        iVar27 = 0x10;\n        iVar46 = 0x10;\n        iVar13 = 2;\n        goto LAB_000a5a70;\n      }" if (parenthesized_expression "((ABS(pPStack_e8[sVar40 - 1].point.x - (pPStack_e8->point).x) < dVar50) &&\n         (ABS(pPStack_e8[sVar40 - 1].point.y - (pPStack_e8->point).y) < dVar50))" ( (binary_expression "(ABS(pPStack_e8[sVar40 - 1].point.x - (pPStack_e8->point).x) < dVar50) &&\n         (ABS(pPStack_e8[sVar40 - 1].point.y - (pPStack_e8->point).y) < dVar50)" (parenthesized_expression "(ABS(pPStack_e8[sVar40 - 1].point.x - (pPStack_e8->point).x) < dVar50)" ( (binary_expression "ABS(pPStack_e8[sVar40 - 1].point.x - (pPStack_e8->point).x) < dVar50" (call_expression "ABS(pPStack_e8[sVar40 - 1].point.x - (pPStack_e8->point).x)" identifier (argument_list "(pPStack_e8[sVar40 - 1].point.x - (pPStack_e8->point).x)" ( (binary_expression "pPStack_e8[sVar40 - 1].point.x - (pPStack_e8->point).x" (field_expression "pPStack_e8[sVar40 - 1].point.x" (field_expression "pPStack_e8[sVar40 - 1].point" (subscript_expression "pPStack_e8[sVar40 - 1]" identifier [ (binary_expression "sVar40 - 1" identifier - number_literal) ]) . field_identifier) . field_identifier) - (field_expression "(pPStack_e8->point).x" (parenthesized_expression "(pPStack_e8->point)" ( (field_expression "pPStack_e8->point" identifier -> field_identifier) )) . field_identifier)) ))) < identifier) )) && (parenthesized_expression "(ABS(pPStack_e8[sVar40 - 1].point.y - (pPStack_e8->point).y) < dVar50)" ( (binary_expression "ABS(pPStack_e8[sVar40 - 1].point.y - (pPStack_e8->point).y) < dVar50" (call_expression "ABS(pPStack_e8[sVar40 - 1].point.y - (pPStack_e8->point).y)" identifier (argument_list "(pPStack_e8[sVar40 - 1].point.y - (pPStack_e8->point).y)" ( (binary_expression "pPStack_e8[sVar40 - 1].point.y - (pPStack_e8->point).y" (field_expression "pPStack_e8[sVar40 - 1].point.y" (field_expression "pPStack_e8[sVar40 - 1].point" (subscript_expression "pPStack_e8[sVar40 - 1]" identifier [ (binary_expression "sVar40 - 1" identifier - number_literal) ]) . field_identifier) . field_identifier) - (field_expression "(pPStack_e8->point).y" (parenthesized_expression "(pPStack_e8->point)" ( (field_expression "pPStack_e8->point" identifier -> field_identifier) )) . field_identifier)) ))) < identifier) ))) )) (compound_statement "{\n        if (draw_info->linejoin - MiterJoin < 2) {\n          pPVar18 = pPStack_e8 + 1;\n          do {\n            pdVar12 = pdVar11;\n            pPVar17 = pPVar18;\n            pPVar18 = (PrimitiveInfo *)&pPVar17->coordinates;\n            sVar24 = *(size_t *)&(pPVar17->point).y;\n            sVar49 = *(size_t *)((int)&(pPVar17->point).y + 4);\n            sVar35 = *(size_t *)&(pPVar17->point).x;\n            *(size_t *)((int)pdVar12 + 4) = *(size_t *)((int)&(pPVar17->point).x + 4);\n            *(size_t *)(pdVar12 + 1) = sVar24;\n            *(size_t *)pdVar12 = sVar35;\n            *(size_t *)((int)pdVar12 + 0xc) = sVar49;\n            pdVar11 = pdVar12 + 2;\n          } while (pPVar18 != (PrimitiveInfo *)&pPStack_e8[1].closed_subpath);\n          iVar44 = iVar44 + 0x28;\n          sVar49 = *(size_t *)pPVar18;\n          pdVar11 = pdVar9 + sVar40 * 5 + 5;\n          *(PrimitiveType *)((int)pdVar12 + 0x14) = pPVar17->primitive;\n          *(size_t *)(pdVar12 + 2) = sVar49;\n          sVar40 = sVar40 + 1;\n        }\n        iStack_188 = 1;\n        bVar2 = true;\n        bVar1 = (int)sVar40 < 2;\n        *(size_t *)((int)pdVar11 + 0x14) = 0;\n        if (bVar1) goto LAB_000a6124;\nLAB_000a4fe8:\n        dVar72 = *(double *)(iVar8 + 0x13f8);\n        dStack_260 = pdVar9[5] - *pdVar9;\n        dStack_258 = pdVar9[6] - pdVar9[1];\n        if ((dVar72 <= ABS(dStack_260)) || (dVar72 <= ABS(dStack_258))) {\n          sVar49 = 1;\n        }\n        else {\n          sVar49 = 1;\n          pdVar11 = pdVar9 + 10;\n          do {\n            sVar49 = sVar49 + 1;\n            if (sVar49 == sVar40) {\n              LVar23 = draw_info->linecap;\n              sVar49 = sVar40;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar11 - *pdVar9;\n            dStack_258 = pdVar11[1] - pdVar9[1];\n          } while ((ABS(dStack_260) < dVar72) && (pdVar11 = pdVar11 + 5, ABS(dStack_258) < dVar72));\n        }\nLAB_000a5110:\n        uVar10 = sVar40 * 2;\n        pdVar11 = (double *)(**(code **)(puVar47 + 0x3047fc))(uVar10 + 0x618,0x10);\n        pdVar12 = (double *)(**(code **)(puVar47 + 0x3047fc))(uVar10 + 0x618,0x10);\n        if (pdVar11 == (double *)0x0) {\n          if (pdVar12 != (double *)0x0) {\n            (**(code **)(puVar47 + 0x3042b0))(pdVar12);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar47 + 0x3042b0))(pdVar9);\n          uVar37 = 0x1c93;\n          goto LAB_000a5724;\n        }\n        if (pdVar12 == (double *)0x0) {\n          (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n          goto LAB_000a6cbc;\n        }\n        if (ABS(dStack_260) < *(double *)(iVar8 + 0x13f8)) {\n          dVar72 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar63 = *(double *)(iVar13 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar63 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n        }\n        else if (ABS(dStack_258) < *(double *)(iVar8 + 0x13f8)) {\n          dVar63 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar72 = *(double *)(iVar13 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar63 = dStack_258 / dStack_260;\n          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a78) / dVar63;\n        }\nLAB_000a51b0:\n        dVar53 = (double)(**(code **)(puVar47 + 0x304288))(&draw_info->affine);\n        iVar13 = draw_info->miterlimit * draw_info->miterlimit;\n        dVar53 = dVar53 * draw_info->stroke_width *\n                 *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1400);\n        dVar57 = (double)iVar13;\n        if (iVar13 < 0) {\n          dVar57 = dVar57 + *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1418);\n        }\n        dVar57 = dVar57 * dVar53 * dVar53;\n        if (draw_info->linecap == SquareCap) {\n          iVar13 = *(int *)(puVar47 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar54 = 0.0;\n              if (sVar40 == 1) {\n                dVar64 = 0.0;\n                sVar35 = 1;\nLAB_000a6998:\n                pdVar16 = pdVar9 + (sVar35 - 1) * 5;\n              }\n              else {\n                pdVar16 = pdVar9 + 5;\n                dVar64 = 0.0;\n              }\n            }\n            else {\n              dVar75 = *(double *)(iVar8 + 0x13f8);\n              dVar64 = *pdVar9 - pdVar9[5];\n              dVar54 = pdVar9[1] - pdVar9[6];\n              if ((dVar75 <= ABS(dVar64)) || (dVar75 <= ABS(dVar54))) {\n                pdVar16 = pdVar9 + 5;\n              }\n              else {\n                sVar24 = 1;\n                pdVar28 = pdVar9 + 10;\n                do {\n                  pdVar16 = pdVar28;\n                  sVar24 = sVar24 + 1;\n                  sVar35 = sVar40;\n                  if (sVar24 == sVar40) goto LAB_000a6998;\n                  dVar64 = *pdVar9 - *pdVar16;\n                  dVar54 = pdVar9[1] - pdVar16[1];\n                } while ((ABS(dVar64) < dVar75) && (pdVar28 = pdVar16 + 5, ABS(dVar54) < dVar75));\n              }\n            }\n            dVar75 = (double)(**(code **)(puVar47 + 0x304a08))(dVar64,dVar54);\n            iVar13 = sVar40 - 2;\n            dVar61 = pdVar16[1];\n            pdVar43 = (double *)((int)pdVar9 + iVar44 + -0x28);\n            pdVar28 = pdVar9 + iVar13 * 5;\n            *pdVar9 = *pdVar16 + (dVar64 * (dVar53 + dVar75)) / dVar75;\n            pdVar9[1] = dVar61 + (dVar54 * (dVar53 + dVar75)) / dVar75;\n            if (-1 < iVar13) {\n              dVar75 = *(double *)(iVar8 + 0x13f8);\n              dVar64 = *pdVar43 - *pdVar28;\n              dVar54 = pdVar43[1] - pdVar28[1];\n              if (ABS(dVar64) < dVar75) {\n                pdVar16 = pdVar9 + (sVar40 - 3) * 5;\n                do {\n                  pdVar28 = pdVar16;\n                  if (dVar75 <= ABS(dVar54)) {\n                    pdVar28 = pdVar9 + iVar13 * 5;\n                    break;\n                  }\n                  iVar13 = iVar13 + -1;\n                  if (iVar13 == -1) break;\n                  dVar64 = *pdVar43 - *pdVar28;\n                  dVar54 = pdVar43[1] - pdVar28[1];\n                  pdVar16 = pdVar28 + -5;\n                } while (ABS(dVar64) < dVar75);\n              }\n            }\n            dVar75 = (double)(**(code **)(puVar47 + 0x304a08))(dVar64,dVar54);\n            dVar61 = pdVar28[1];\n            *pdVar43 = *pdVar28 + (dVar64 * (dVar53 + dVar75)) / dVar75;\n            pdVar43[1] = dVar61 + (dVar54 * (dVar53 + dVar75)) / dVar75;\n            goto LAB_000a5220;\n          }\n        }\n        else {\nLAB_000a5220:\n          iVar13 = *(int *)(puVar47 + 0x303bd0);\n        }\n        dVar54 = dVar53 * dVar53;\n        dVar64 = dVar54 / (dVar72 * dVar72 + *(double *)(iVar13 + 0x1438));\n        dVar75 = SQRT(dVar64);\n        if (dVar64 < 0.0) {\n          (**(code **)(puVar47 + 0x304770))();\n        }\n        dVar72 = dVar72 * dVar75;\n        pdVar16 = pdVar9 + sVar49 * 5;\n        dVar69 = *pdVar16;\n        dVar73 = pdVar16[1];\n        dVar68 = dVar72 + pdVar9[1];\n        dVar66 = pdVar9[1] - dVar72;\n        dVar64 = dVar75 + *pdVar9;\n        dStack_238 = dVar73 - dVar72;\n        dStack_240 = dVar69 - dVar75;\n        dVar67 = *pdVar9 - dVar75;\n        dVar62 = dVar67;\n        dVar61 = dVar68;\n        dStack_250 = dVar75 + dVar69;\n        dStack_248 = dVar72 + dVar73;\n        if (0.0 < dVar75 * dStack_258 - dVar72 * dStack_260) {\n          dVar62 = dVar64;\n          dVar61 = dVar66;\n          dVar64 = dVar67;\n          dVar66 = dVar68;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar75 + dVar69;\n          dStack_238 = dVar72 + dVar73;\n        }\n        sVar35 = sVar49 + 1;\n        *pdVar12 = dVar62;\n        pdVar12[1] = dVar66;\n        *pdVar11 = dVar64;\n        pdVar11[1] = dVar61;\n        if ((int)sVar35 < (int)sVar40) {\n          iVar27 = *(int *)(puVar47 + 0x303bd8);\n          iVar44 = 1;\n          iVar46 = 1;\n          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a78);\n          dVar75 = *(double *)(*(int *)(puVar47 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar10;\n          do {\n            dVar55 = pdVar16[6];\n            dVar58 = pdVar16[5];\n            dVar59 = dVar55 - dVar73;\n            dVar65 = dVar58 - dVar69;\n            dVar60 = dVar58 - dVar69;\n            dVar67 = dStack_238;\n            dVar68 = dStack_240;\n            dVar70 = dStack_248;\n            dVar74 = dStack_250;\n            if (*(double *)(iVar27 + -0x2e38) <=\n                dVar65 * dVar65 + (dVar55 - dVar73) * (dVar55 - dVar73)) {\n              if (ABS(dVar65) < *(double *)(iVar8 + 0x13f8)) {\n                dVar67 = 0.0;\n                dVar68 = dVar54;\n                if (0.0 <= dVar65) {\n                  if (0.0 <= dVar55 - dVar73) goto LAB_000a53e0;\n                }\n                else if (dVar55 - dVar73 < 0.0) {\nLAB_000a53e0:\n                  dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar59) < *(double *)(iVar8 + 0x13f8)) {\n                dVar65 = 0.0;\n                dVar68 = dVar54 / dVar75;\n                if (0.0 <= dVar55 - dVar73) {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (dVar58 - dVar69 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (0.0 <= dVar58 - dVar69) {\nLAB_000a5880:\n                    dVar67 = *(double *)(iVar30 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar67 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar65 = (dVar55 - dVar73) / (dVar58 - dVar69);\n                dVar67 = dVar72 / dVar65;\n                dVar68 = dVar54 / (dVar67 * dVar67 + *(double *)(iVar13 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar28 = pdVar9 + sVar49 * 5;\n              dVar70 = SQRT(dVar68);\n              if (dVar68 < 0.0) {\n                (**(code **)(puVar47 + 0x304770))();\n                dVar69 = *pdVar28;\n                dVar73 = pdVar28[1];\n                dVar58 = pdVar16[5];\n                dVar55 = pdVar16[6];\n              }\n              dVar67 = dVar67 * dVar70;\n              dStack_2a8 = dVar58 - dVar70;\n              dStack_2a0 = dVar55 - dVar67;\n              dStack_278 = dVar69 - dVar70;\n              dStack_270 = dVar73 - dVar67;\n              dStack_2b8 = dVar70 + dVar58;\n              dStack_2b0 = dVar67 + dVar55;\n              dStack_288 = dVar70 + dVar69;\n              dStack_280 = dVar67 + dVar73;\n              if (0.0 < dVar59 * dVar70 - dVar60 * dVar67) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar70 + dVar58;\n                dStack_2a0 = dVar67 + dVar55;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar70 + dVar69;\n                dStack_270 = dVar67 + dVar73;\n              }\n              dVar67 = dVar63 - dVar65;\n              dVar69 = dStack_250;\n              dVar73 = dStack_248;\n              dVar55 = dStack_238;\n              dVar58 = dStack_240;\n              if (*(double *)(iVar8 + 0x13f8) <= ABS(dVar67)) {\n                dVar69 = (((dVar64 * dVar63 - dVar61) - dVar65 * dStack_2b8) + dStack_2b0) / dVar67;\n                dVar58 = (((dVar63 * dVar62 - dVar66) - dVar65 * dStack_2a8) + dStack_2a0) / dVar67;\n                dVar73 = (dVar69 - dVar64) * dVar63 + dVar61;\n                dVar55 = (dVar58 - dVar62) * dVar63 + dVar66;\n              }\n              if ((int)uStack_22c <= iVar46 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar11 = (double *)\n                            (**(code **)(puVar47 + 0x304710))(pdVar11,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                }\n              }\n              if (iVar44 + 0x618 < (int)uVar10) {\n                if (pdVar11 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a5710:\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar10) {\n                  pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  if (pdVar11 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar12 != (double *)0x0) goto LAB_000a5700;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar48)(pdVar9);\n                  uVar37 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar12 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                uVar10 = uVar10 + 0x618;\n                if (pdVar11 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar12 == (double *)0x0) {\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  goto LAB_000a5710;\n                }\n              }\n              LVar14 = draw_info->linejoin;\n              dVar62 = dStack_278;\n              dVar61 = dStack_280;\n              dVar64 = dStack_288;\n              dVar66 = dStack_270;\n              sVar49 = sVar35;\n              dVar63 = dVar65;\n              if (dVar60 * dStack_258 - dVar59 * dStack_260 <= 0.0) {\n                if (LVar14 != RoundJoin) {\n                  if (LVar14 == BevelJoin) {\n                    pdVar28 = pdVar11 + iVar46 * 2;\n                    pdVar12[iVar44 * 2] = dStack_240;\n                    (pdVar12 + iVar44 * 2)[1] = dStack_238;\n                    pdVar12[iVar44 * 2 + 2] = dStack_278;\n                    (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if (dVar57 < (dVar58 - dVar69) * (dVar58 - dVar69) +\n                                   (dVar55 - dVar73) * (dVar55 - dVar73)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar44 = iVar44 + 1;\n                      iVar46 = iVar46 + 1;\n                      *pdVar43 = dVar58;\n                      pdVar43[1] = dVar55;\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar30 = iVar46 + 1;\n                pdVar43 = pdVar11 + iVar46 * 2;\n                if ((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57) {\n                  *pdVar43 = dVar69;\n                  pdVar43[1] = dVar73;\n                }\n                else {\n                  iVar30 = iVar46 + 2;\n                  *pdVar43 = dStack_250;\n                  pdVar43[1] = dStack_248;\n                  pdVar11[iVar46 * 2 + 2] = dStack_288;\n                  (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                }\n                dVar69 = *pdVar28;\n                dVar68 = pdVar28[1];\n                dVar63 = dVar68;\n                dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_238 - dVar68,dStack_240 - dVar69);\n                dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_270 - dVar63,dStack_278 - dVar69);\n                if (dVar63 < dVar67) {\n                  dVar63 = dVar63 + *(double *)(iVar26 + 0x34a0);\n                }\n                dVar63 = dVar63 - dVar67;\n                dVar73 = *(double *)(iVar13 + 0x1438) / dVar53;\n                dVar70 = SQRT(dVar73);\n                if (dVar73 < 0.0) {\n                  (**(code **)(puVar47 + 0x304770))();\n                }\n                dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar63 / (dVar70 + dVar70));\n                dVar70 = *(double *)(iVar22 + 0x1410);\n                if (dVar73 < dVar70) {\n                  uVar42 = (uint)dVar73;\n                }\n                else {\n                  uVar42 = (int)(dVar73 - dVar70) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar30 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar46 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar11,iVar46,0x10);\n                  }\n                  else {\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  }\n                }\n                if (uVar42 + 0x618 < 0x4000001) {\n                  if ((int)uVar10 <= (int)(iVar44 + 0x618 + uVar42)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uVar10 < uVar42 + 0x618) goto LAB_000a67d4;\n                    iVar46 = uVar42 + uVar10;\n                    uVar10 = iVar46 + 0x618;\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,iVar46 + 0xc30,0x10);\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar11 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a6d2c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar12 = (double *)(*pcVar48)(pdVar12);\nLAB_000a64c4:\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a6884;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar28 = pdVar12 + iVar44 * 2;\n                *pdVar28 = dStack_240;\n                pdVar28[1] = dStack_238;\n                if (1 < (int)uVar42) {\n                  uVar71 = *(undefined8 *)(iVar26 + 0x34a0);\n                  uVar41 = 1;\n                  do {\n                    uVar45 = uVar41 + 1;\n                    dVar70 = ((double)(int)uVar41 * dVar63) / (double)(int)uVar42 + dVar67;\n                    uVar56 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar56);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar69;\n                    uVar56 = (*pcVar48)(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar56);\n                    pdVar28[3] = dVar53 * dVar73 + dVar68;\n                    uVar41 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar42);\n                }\n                *pdVar12 = dStack_278;\n                pdVar12[1] = dStack_270;\n                dStack_258 = dVar59;\n                dStack_260 = dVar60;\n                dVar67 = dStack_2a0;\n                dVar68 = dStack_2a8;\n                dVar70 = dStack_2b0;\n                dVar74 = dStack_2b8;\n                iVar44 = 1;\n                iVar46 = iVar30;\n                dVar63 = dVar65;\n              }\n              else {\n                if (LVar14 != RoundJoin) {\n                  if (LVar14 == BevelJoin) {\n                    iVar30 = iVar46 * 2;\n                    iVar3 = iVar46 * 2;\n                    iVar46 = iVar46 + 2;\n                    pdVar11[iVar30] = dStack_250;\n                    (pdVar11 + iVar30)[1] = dStack_248;\n                    pdVar28 = pdVar12 + iVar44 * 2;\n                    pdVar11[iVar3 + 2] = dStack_288;\n                    (pdVar11 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar58;\n                      pdVar28[1] = dVar55;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_240;\n                      pdVar28[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                          (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar43 = dStack_240;\n                      pdVar43[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar30 = iVar44 + 1;\n                pdVar43 = pdVar12 + iVar44 * 2;\n                if ((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57) {\n                  *pdVar43 = dVar58;\n                  pdVar43[1] = dVar55;\n                }\n                else {\n                  iVar30 = iVar44 + 2;\n                  *pdVar43 = dStack_240;\n                  pdVar43[1] = dStack_238;\n                  pdVar12[iVar44 * 2 + 2] = dStack_278;\n                  (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                }\n                dVar68 = *pdVar28;\n                dVar69 = pdVar28[1];\n                dVar63 = dVar68;\n                dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_248 - dVar69,dStack_250 - dVar68);\n                dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_280 - dVar69,dStack_288 - dVar63);\n                if (dVar67 < dVar63) {\n                  dVar67 = dVar67 + *(double *)(iVar26 + 0x34a0);\n                }\n                dVar73 = dVar67 - dVar63;\n                dVar70 = *(double *)(iVar13 + 0x1438) / dVar53;\n                dVar74 = SQRT(dVar70);\n                if (dVar70 < 0.0) {\n                  (**(code **)(puVar47 + 0x304770))();\n                }\n                dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar73 / (dVar74 + dVar74));\n                if (dVar73 < dVar51) {\n                  uVar41 = (uint)dVar73;\n                  uVar42 = uVar41 + 0x618;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                  if (uVar42 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar11 = (double *)(*pcVar48)(pdVar11);\n                }\n                else {\n                  uVar41 = (int)(dVar73 - dVar51) | 0x80000000;\n                  uVar42 = uVar41 + 0x618;\n                  if (0x4000000 < uVar42) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar46 + 0x618 + uVar41)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uStack_22c < uVar42) goto LAB_000a66a4;\n                    iVar44 = uStack_22c + uVar41;\n                    uStack_22c = iVar44 + 0x618;\n                    pdVar11 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar11,iVar44 + 0xc30,0x10);\n                  }\n                }\n                if (iVar30 + 0x618 < (int)uVar10) {\n                  if (pdVar11 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a665c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar10 < 0xfffff9e8) {\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                    uVar10 = uVar10 + 0x618;\n                  }\n                  else {\n                    pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  }\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a664c;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar28 = pdVar11 + iVar46 * 2;\n                *pdVar28 = dStack_250;\n                pdVar28[1] = dStack_248;\n                if (1 < (int)uVar41) {\n                  dVar63 = dVar63 - dVar67;\n                  uVar42 = 1;\n                  do {\n                    uVar45 = uVar42 + 1;\n                    dVar70 = ((double)(int)uVar42 * dVar63) / (double)(int)uVar41 + dVar67;\n                    uVar71 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar71);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar68;\n                    uVar71 = (*pcVar48)(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar71);\n                    pdVar28[3] = dVar53 * dVar73 + dVar69;\n                    uVar42 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar41);\n                }\n                *pdVar11 = dStack_288;\n                pdVar11[1] = dStack_280;\n                dStack_258 = dVar59;\n                dStack_260 = dVar60;\n                dVar67 = dStack_2a0;\n                dVar68 = dStack_2a8;\n                dVar70 = dStack_2b0;\n                dVar74 = dStack_2b8;\n                iVar44 = iVar30;\n                iVar46 = 1;\n                dVar63 = dVar65;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar74;\n            dStack_248 = dVar70;\n            dStack_240 = dVar68;\n            dStack_238 = dVar67;\n            if (sVar35 + 1 == sVar40) goto LAB_000a5a58;\n            pdVar16 = pdVar16 + 5;\n            sVar35 = sVar35 + 1;\n            dVar69 = pdVar9[sVar49 * 5];\n            dVar73 = (pdVar9 + sVar49 * 5)[1];\n          } while( true );\n        }\n        iVar44 = 4;\n        iVar27 = 0x10;\n        iVar46 = 0x10;\n        iVar13 = 2;\n        goto LAB_000a5a70;\n      }" { (if_statement "if (draw_info->linejoin - MiterJoin < 2) {\n          pPVar18 = pPStack_e8 + 1;\n          do {\n            pdVar12 = pdVar11;\n            pPVar17 = pPVar18;\n            pPVar18 = (PrimitiveInfo *)&pPVar17->coordinates;\n            sVar24 = *(size_t *)&(pPVar17->point).y;\n            sVar49 = *(size_t *)((int)&(pPVar17->point).y + 4);\n            sVar35 = *(size_t *)&(pPVar17->point).x;\n            *(size_t *)((int)pdVar12 + 4) = *(size_t *)((int)&(pPVar17->point).x + 4);\n            *(size_t *)(pdVar12 + 1) = sVar24;\n            *(size_t *)pdVar12 = sVar35;\n            *(size_t *)((int)pdVar12 + 0xc) = sVar49;\n            pdVar11 = pdVar12 + 2;\n          } while (pPVar18 != (PrimitiveInfo *)&pPStack_e8[1].closed_subpath);\n          iVar44 = iVar44 + 0x28;\n          sVar49 = *(size_t *)pPVar18;\n          pdVar11 = pdVar9 + sVar40 * 5 + 5;\n          *(PrimitiveType *)((int)pdVar12 + 0x14) = pPVar17->primitive;\n          *(size_t *)(pdVar12 + 2) = sVar49;\n          sVar40 = sVar40 + 1;\n        }" if (parenthesized_expression "(draw_info->linejoin - MiterJoin < 2)" ( (binary_expression "draw_info->linejoin - MiterJoin < 2" (binary_expression "draw_info->linejoin - MiterJoin" (field_expression "draw_info->linejoin" identifier -> field_identifier) - identifier) < number_literal) )) (compound_statement "{\n          pPVar18 = pPStack_e8 + 1;\n          do {\n            pdVar12 = pdVar11;\n            pPVar17 = pPVar18;\n            pPVar18 = (PrimitiveInfo *)&pPVar17->coordinates;\n            sVar24 = *(size_t *)&(pPVar17->point).y;\n            sVar49 = *(size_t *)((int)&(pPVar17->point).y + 4);\n            sVar35 = *(size_t *)&(pPVar17->point).x;\n            *(size_t *)((int)pdVar12 + 4) = *(size_t *)((int)&(pPVar17->point).x + 4);\n            *(size_t *)(pdVar12 + 1) = sVar24;\n            *(size_t *)pdVar12 = sVar35;\n            *(size_t *)((int)pdVar12 + 0xc) = sVar49;\n            pdVar11 = pdVar12 + 2;\n          } while (pPVar18 != (PrimitiveInfo *)&pPStack_e8[1].closed_subpath);\n          iVar44 = iVar44 + 0x28;\n          sVar49 = *(size_t *)pPVar18;\n          pdVar11 = pdVar9 + sVar40 * 5 + 5;\n          *(PrimitiveType *)((int)pdVar12 + 0x14) = pPVar17->primitive;\n          *(size_t *)(pdVar12 + 2) = sVar49;\n          sVar40 = sVar40 + 1;\n        }" { (expression_statement "pPVar18 = pPStack_e8 + 1;" (assignment_expression "pPVar18 = pPStack_e8 + 1" identifier = (binary_expression "pPStack_e8 + 1" identifier + number_literal)) ;) (do_statement "do {\n            pdVar12 = pdVar11;\n            pPVar17 = pPVar18;\n            pPVar18 = (PrimitiveInfo *)&pPVar17->coordinates;\n            sVar24 = *(size_t *)&(pPVar17->point).y;\n            sVar49 = *(size_t *)((int)&(pPVar17->point).y + 4);\n            sVar35 = *(size_t *)&(pPVar17->point).x;\n            *(size_t *)((int)pdVar12 + 4) = *(size_t *)((int)&(pPVar17->point).x + 4);\n            *(size_t *)(pdVar12 + 1) = sVar24;\n            *(size_t *)pdVar12 = sVar35;\n            *(size_t *)((int)pdVar12 + 0xc) = sVar49;\n            pdVar11 = pdVar12 + 2;\n          } while (pPVar18 != (PrimitiveInfo *)&pPStack_e8[1].closed_subpath);" do (compound_statement "{\n            pdVar12 = pdVar11;\n            pPVar17 = pPVar18;\n            pPVar18 = (PrimitiveInfo *)&pPVar17->coordinates;\n            sVar24 = *(size_t *)&(pPVar17->point).y;\n            sVar49 = *(size_t *)((int)&(pPVar17->point).y + 4);\n            sVar35 = *(size_t *)&(pPVar17->point).x;\n            *(size_t *)((int)pdVar12 + 4) = *(size_t *)((int)&(pPVar17->point).x + 4);\n            *(size_t *)(pdVar12 + 1) = sVar24;\n            *(size_t *)pdVar12 = sVar35;\n            *(size_t *)((int)pdVar12 + 0xc) = sVar49;\n            pdVar11 = pdVar12 + 2;\n          }" { (expression_statement "pdVar12 = pdVar11;" (assignment_expression "pdVar12 = pdVar11" identifier = identifier) ;) (expression_statement "pPVar17 = pPVar18;" (assignment_expression "pPVar17 = pPVar18" identifier = identifier) ;) (expression_statement "pPVar18 = (PrimitiveInfo *)&pPVar17->coordinates;" (assignment_expression "pPVar18 = (PrimitiveInfo *)&pPVar17->coordinates" identifier = (cast_expression "(PrimitiveInfo *)&pPVar17->coordinates" ( (type_descriptor "PrimitiveInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pPVar17->coordinates" & (field_expression "pPVar17->coordinates" identifier -> field_identifier)))) ;) (expression_statement "sVar24 = *(size_t *)&(pPVar17->point).y;" (assignment_expression "sVar24 = *(size_t *)&(pPVar17->point).y" identifier = (pointer_expression "*(size_t *)&(pPVar17->point).y" * (cast_expression "(size_t *)&(pPVar17->point).y" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pPVar17->point).y" & (field_expression "(pPVar17->point).y" (parenthesized_expression "(pPVar17->point)" ( (field_expression "pPVar17->point" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "sVar49 = *(size_t *)((int)&(pPVar17->point).y + 4);" (assignment_expression "sVar49 = *(size_t *)((int)&(pPVar17->point).y + 4)" identifier = (pointer_expression "*(size_t *)((int)&(pPVar17->point).y + 4)" * (cast_expression "(size_t *)((int)&(pPVar17->point).y + 4)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pPVar17->point).y + 4)" ( (binary_expression "(int)&(pPVar17->point).y + 4" (cast_expression "(int)&(pPVar17->point).y" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pPVar17->point).y" & (field_expression "(pPVar17->point).y" (parenthesized_expression "(pPVar17->point)" ( (field_expression "pPVar17->point" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "sVar35 = *(size_t *)&(pPVar17->point).x;" (assignment_expression "sVar35 = *(size_t *)&(pPVar17->point).x" identifier = (pointer_expression "*(size_t *)&(pPVar17->point).x" * (cast_expression "(size_t *)&(pPVar17->point).x" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pPVar17->point).x" & (field_expression "(pPVar17->point).x" (parenthesized_expression "(pPVar17->point)" ( (field_expression "pPVar17->point" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "*(size_t *)((int)pdVar12 + 4) = *(size_t *)((int)&(pPVar17->point).x + 4);" (assignment_expression "*(size_t *)((int)pdVar12 + 4) = *(size_t *)((int)&(pPVar17->point).x + 4)" (pointer_expression "*(size_t *)((int)pdVar12 + 4)" * (cast_expression "(size_t *)((int)pdVar12 + 4)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar12 + 4)" ( (binary_expression "(int)pdVar12 + 4" (cast_expression "(int)pdVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(size_t *)((int)&(pPVar17->point).x + 4)" * (cast_expression "(size_t *)((int)&(pPVar17->point).x + 4)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pPVar17->point).x + 4)" ( (binary_expression "(int)&(pPVar17->point).x + 4" (cast_expression "(int)&(pPVar17->point).x" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pPVar17->point).x" & (field_expression "(pPVar17->point).x" (parenthesized_expression "(pPVar17->point)" ( (field_expression "pPVar17->point" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "*(size_t *)(pdVar12 + 1) = sVar24;" (assignment_expression "*(size_t *)(pdVar12 + 1) = sVar24" (pointer_expression "*(size_t *)(pdVar12 + 1)" * (cast_expression "(size_t *)(pdVar12 + 1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar12 + 1)" ( (binary_expression "pdVar12 + 1" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(size_t *)pdVar12 = sVar35;" (assignment_expression "*(size_t *)pdVar12 = sVar35" (pointer_expression "*(size_t *)pdVar12" * (cast_expression "(size_t *)pdVar12" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(size_t *)((int)pdVar12 + 0xc) = sVar49;" (assignment_expression "*(size_t *)((int)pdVar12 + 0xc) = sVar49" (pointer_expression "*(size_t *)((int)pdVar12 + 0xc)" * (cast_expression "(size_t *)((int)pdVar12 + 0xc)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar12 + 0xc)" ( (binary_expression "(int)pdVar12 + 0xc" (cast_expression "(int)pdVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pdVar11 = pdVar12 + 2;" (assignment_expression "pdVar11 = pdVar12 + 2" identifier = (binary_expression "pdVar12 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(pPVar18 != (PrimitiveInfo *)&pPStack_e8[1].closed_subpath)" ( (binary_expression "pPVar18 != (PrimitiveInfo *)&pPStack_e8[1].closed_subpath" identifier != (cast_expression "(PrimitiveInfo *)&pPStack_e8[1].closed_subpath" ( (type_descriptor "PrimitiveInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pPStack_e8[1].closed_subpath" & (field_expression "pPStack_e8[1].closed_subpath" (subscript_expression "pPStack_e8[1]" identifier [ number_literal ]) . field_identifier)))) )) ;) (expression_statement "iVar44 = iVar44 + 0x28;" (assignment_expression "iVar44 = iVar44 + 0x28" identifier = (binary_expression "iVar44 + 0x28" identifier + number_literal)) ;) (expression_statement "sVar49 = *(size_t *)pPVar18;" (assignment_expression "sVar49 = *(size_t *)pPVar18" identifier = (pointer_expression "*(size_t *)pPVar18" * (cast_expression "(size_t *)pPVar18" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pdVar11 = pdVar9 + sVar40 * 5 + 5;" (assignment_expression "pdVar11 = pdVar9 + sVar40 * 5 + 5" identifier = (binary_expression "pdVar9 + sVar40 * 5 + 5" (binary_expression "pdVar9 + sVar40 * 5" identifier + (binary_expression "sVar40 * 5" identifier * number_literal)) + number_literal)) ;) (expression_statement "*(PrimitiveType *)((int)pdVar12 + 0x14) = pPVar17->primitive;" (assignment_expression "*(PrimitiveType *)((int)pdVar12 + 0x14) = pPVar17->primitive" (pointer_expression "*(PrimitiveType *)((int)pdVar12 + 0x14)" * (cast_expression "(PrimitiveType *)((int)pdVar12 + 0x14)" ( (type_descriptor "PrimitiveType *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar12 + 0x14)" ( (binary_expression "(int)pdVar12 + 0x14" (cast_expression "(int)pdVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (field_expression "pPVar17->primitive" identifier -> field_identifier)) ;) (expression_statement "*(size_t *)(pdVar12 + 2) = sVar49;" (assignment_expression "*(size_t *)(pdVar12 + 2) = sVar49" (pointer_expression "*(size_t *)(pdVar12 + 2)" * (cast_expression "(size_t *)(pdVar12 + 2)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar12 + 2)" ( (binary_expression "pdVar12 + 2" identifier + number_literal) )))) = identifier) ;) (expression_statement "sVar40 = sVar40 + 1;" (assignment_expression "sVar40 = sVar40 + 1" identifier = (binary_expression "sVar40 + 1" identifier + number_literal)) ;) })) (expression_statement "iStack_188 = 1;" (assignment_expression "iStack_188 = 1" identifier = number_literal) ;) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "bVar1 = (int)sVar40 < 2;" (assignment_expression "bVar1 = (int)sVar40 < 2" identifier = (binary_expression "(int)sVar40 < 2" (cast_expression "(int)sVar40" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (expression_statement "*(size_t *)((int)pdVar11 + 0x14) = 0;" (assignment_expression "*(size_t *)((int)pdVar11 + 0x14) = 0" (pointer_expression "*(size_t *)((int)pdVar11 + 0x14)" * (cast_expression "(size_t *)((int)pdVar11 + 0x14)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar11 + 0x14)" ( (binary_expression "(int)pdVar11 + 0x14" (cast_expression "(int)pdVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (if_statement "if (bVar1) goto LAB_000a6124;" if (parenthesized_expression "(bVar1)" ( identifier )) (goto_statement "goto LAB_000a6124;" goto statement_identifier ;)) (labeled_statement "LAB_000a4fe8:\n        dVar72 = *(double *)(iVar8 + 0x13f8);" statement_identifier : (expression_statement "dVar72 = *(double *)(iVar8 + 0x13f8);" (assignment_expression "dVar72 = *(double *)(iVar8 + 0x13f8)" identifier = (pointer_expression "*(double *)(iVar8 + 0x13f8)" * (cast_expression "(double *)(iVar8 + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x13f8)" ( (binary_expression "iVar8 + 0x13f8" identifier + number_literal) ))))) ;)) (expression_statement "dStack_260 = pdVar9[5] - *pdVar9;" (assignment_expression "dStack_260 = pdVar9[5] - *pdVar9" identifier = (binary_expression "pdVar9[5] - *pdVar9" (subscript_expression "pdVar9[5]" identifier [ number_literal ]) - (pointer_expression "*pdVar9" * identifier))) ;) (expression_statement "dStack_258 = pdVar9[6] - pdVar9[1];" (assignment_expression "dStack_258 = pdVar9[6] - pdVar9[1]" identifier = (binary_expression "pdVar9[6] - pdVar9[1]" (subscript_expression "pdVar9[6]" identifier [ number_literal ]) - (subscript_expression "pdVar9[1]" identifier [ number_literal ]))) ;) (if_statement "if ((dVar72 <= ABS(dStack_260)) || (dVar72 <= ABS(dStack_258))) {\n          sVar49 = 1;\n        }\n        else {\n          sVar49 = 1;\n          pdVar11 = pdVar9 + 10;\n          do {\n            sVar49 = sVar49 + 1;\n            if (sVar49 == sVar40) {\n              LVar23 = draw_info->linecap;\n              sVar49 = sVar40;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar11 - *pdVar9;\n            dStack_258 = pdVar11[1] - pdVar9[1];\n          } while ((ABS(dStack_260) < dVar72) && (pdVar11 = pdVar11 + 5, ABS(dStack_258) < dVar72));\n        }" if (parenthesized_expression "((dVar72 <= ABS(dStack_260)) || (dVar72 <= ABS(dStack_258)))" ( (binary_expression "(dVar72 <= ABS(dStack_260)) || (dVar72 <= ABS(dStack_258))" (parenthesized_expression "(dVar72 <= ABS(dStack_260))" ( (binary_expression "dVar72 <= ABS(dStack_260)" identifier <= (call_expression "ABS(dStack_260)" identifier (argument_list "(dStack_260)" ( identifier )))) )) || (parenthesized_expression "(dVar72 <= ABS(dStack_258))" ( (binary_expression "dVar72 <= ABS(dStack_258)" identifier <= (call_expression "ABS(dStack_258)" identifier (argument_list "(dStack_258)" ( identifier )))) ))) )) (compound_statement "{\n          sVar49 = 1;\n        }" { (expression_statement "sVar49 = 1;" (assignment_expression "sVar49 = 1" identifier = number_literal) ;) }) (else_clause "else {\n          sVar49 = 1;\n          pdVar11 = pdVar9 + 10;\n          do {\n            sVar49 = sVar49 + 1;\n            if (sVar49 == sVar40) {\n              LVar23 = draw_info->linecap;\n              sVar49 = sVar40;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar11 - *pdVar9;\n            dStack_258 = pdVar11[1] - pdVar9[1];\n          } while ((ABS(dStack_260) < dVar72) && (pdVar11 = pdVar11 + 5, ABS(dStack_258) < dVar72));\n        }" else (compound_statement "{\n          sVar49 = 1;\n          pdVar11 = pdVar9 + 10;\n          do {\n            sVar49 = sVar49 + 1;\n            if (sVar49 == sVar40) {\n              LVar23 = draw_info->linecap;\n              sVar49 = sVar40;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar11 - *pdVar9;\n            dStack_258 = pdVar11[1] - pdVar9[1];\n          } while ((ABS(dStack_260) < dVar72) && (pdVar11 = pdVar11 + 5, ABS(dStack_258) < dVar72));\n        }" { (expression_statement "sVar49 = 1;" (assignment_expression "sVar49 = 1" identifier = number_literal) ;) (expression_statement "pdVar11 = pdVar9 + 10;" (assignment_expression "pdVar11 = pdVar9 + 10" identifier = (binary_expression "pdVar9 + 10" identifier + number_literal)) ;) (do_statement "do {\n            sVar49 = sVar49 + 1;\n            if (sVar49 == sVar40) {\n              LVar23 = draw_info->linecap;\n              sVar49 = sVar40;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar11 - *pdVar9;\n            dStack_258 = pdVar11[1] - pdVar9[1];\n          } while ((ABS(dStack_260) < dVar72) && (pdVar11 = pdVar11 + 5, ABS(dStack_258) < dVar72));" do (compound_statement "{\n            sVar49 = sVar49 + 1;\n            if (sVar49 == sVar40) {\n              LVar23 = draw_info->linecap;\n              sVar49 = sVar40;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar11 - *pdVar9;\n            dStack_258 = pdVar11[1] - pdVar9[1];\n          }" { (expression_statement "sVar49 = sVar49 + 1;" (assignment_expression "sVar49 = sVar49 + 1" identifier = (binary_expression "sVar49 + 1" identifier + number_literal)) ;) (if_statement "if (sVar49 == sVar40) {\n              LVar23 = draw_info->linecap;\n              sVar49 = sVar40;\n              goto joined_r0x000a50f8;\n            }" if (parenthesized_expression "(sVar49 == sVar40)" ( (binary_expression "sVar49 == sVar40" identifier == identifier) )) (compound_statement "{\n              LVar23 = draw_info->linecap;\n              sVar49 = sVar40;\n              goto joined_r0x000a50f8;\n            }" { (expression_statement "LVar23 = draw_info->linecap;" (assignment_expression "LVar23 = draw_info->linecap" identifier = (field_expression "draw_info->linecap" identifier -> field_identifier)) ;) (expression_statement "sVar49 = sVar40;" (assignment_expression "sVar49 = sVar40" identifier = identifier) ;) (goto_statement "goto joined_r0x000a50f8;" goto statement_identifier ;) })) (expression_statement "dStack_260 = *pdVar11 - *pdVar9;" (assignment_expression "dStack_260 = *pdVar11 - *pdVar9" identifier = (binary_expression "*pdVar11 - *pdVar9" (pointer_expression "*pdVar11" * identifier) - (pointer_expression "*pdVar9" * identifier))) ;) (expression_statement "dStack_258 = pdVar11[1] - pdVar9[1];" (assignment_expression "dStack_258 = pdVar11[1] - pdVar9[1]" identifier = (binary_expression "pdVar11[1] - pdVar9[1]" (subscript_expression "pdVar11[1]" identifier [ number_literal ]) - (subscript_expression "pdVar9[1]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "((ABS(dStack_260) < dVar72) && (pdVar11 = pdVar11 + 5, ABS(dStack_258) < dVar72))" ( (binary_expression "(ABS(dStack_260) < dVar72) && (pdVar11 = pdVar11 + 5, ABS(dStack_258) < dVar72)" (parenthesized_expression "(ABS(dStack_260) < dVar72)" ( (binary_expression "ABS(dStack_260) < dVar72" (call_expression "ABS(dStack_260)" identifier (argument_list "(dStack_260)" ( identifier ))) < identifier) )) && (parenthesized_expression "(pdVar11 = pdVar11 + 5, ABS(dStack_258) < dVar72)" ( (comma_expression "pdVar11 = pdVar11 + 5, ABS(dStack_258) < dVar72" (assignment_expression "pdVar11 = pdVar11 + 5" identifier = (binary_expression "pdVar11 + 5" identifier + number_literal)) , (binary_expression "ABS(dStack_258) < dVar72" (call_expression "ABS(dStack_258)" identifier (argument_list "(dStack_258)" ( identifier ))) < identifier)) ))) )) ;) }))) (labeled_statement "LAB_000a5110:\n        uVar10 = sVar40 * 2;" statement_identifier : (expression_statement "uVar10 = sVar40 * 2;" (assignment_expression "uVar10 = sVar40 * 2" identifier = (binary_expression "sVar40 * 2" identifier * number_literal)) ;)) (expression_statement "pdVar11 = (double *)(**(code **)(puVar47 + 0x3047fc))(uVar10 + 0x618,0x10);" (assignment_expression "pdVar11 = (double *)(**(code **)(puVar47 + 0x3047fc))(uVar10 + 0x618,0x10)" identifier = (cast_expression "(double *)(**(code **)(puVar47 + 0x3047fc))(uVar10 + 0x618,0x10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar47 + 0x3047fc))(uVar10 + 0x618,0x10)" (parenthesized_expression "(**(code **)(puVar47 + 0x3047fc))" ( (pointer_expression "**(code **)(puVar47 + 0x3047fc)" * (pointer_expression "*(code **)(puVar47 + 0x3047fc)" * (cast_expression "(code **)(puVar47 + 0x3047fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3047fc)" ( (binary_expression "puVar47 + 0x3047fc" identifier + number_literal) ))))) )) (argument_list "(uVar10 + 0x618,0x10)" ( (binary_expression "uVar10 + 0x618" identifier + number_literal) , number_literal ))))) ;) (expression_statement "pdVar12 = (double *)(**(code **)(puVar47 + 0x3047fc))(uVar10 + 0x618,0x10);" (assignment_expression "pdVar12 = (double *)(**(code **)(puVar47 + 0x3047fc))(uVar10 + 0x618,0x10)" identifier = (cast_expression "(double *)(**(code **)(puVar47 + 0x3047fc))(uVar10 + 0x618,0x10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar47 + 0x3047fc))(uVar10 + 0x618,0x10)" (parenthesized_expression "(**(code **)(puVar47 + 0x3047fc))" ( (pointer_expression "**(code **)(puVar47 + 0x3047fc)" * (pointer_expression "*(code **)(puVar47 + 0x3047fc)" * (cast_expression "(code **)(puVar47 + 0x3047fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3047fc)" ( (binary_expression "puVar47 + 0x3047fc" identifier + number_literal) ))))) )) (argument_list "(uVar10 + 0x618,0x10)" ( (binary_expression "uVar10 + 0x618" identifier + number_literal) , number_literal ))))) ;) (if_statement "if (pdVar11 == (double *)0x0) {\n          if (pdVar12 != (double *)0x0) {\n            (**(code **)(puVar47 + 0x3042b0))(pdVar12);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar47 + 0x3042b0))(pdVar9);\n          uVar37 = 0x1c93;\n          goto LAB_000a5724;\n        }" if (parenthesized_expression "(pdVar11 == (double *)0x0)" ( (binary_expression "pdVar11 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (pdVar12 != (double *)0x0) {\n            (**(code **)(puVar47 + 0x3042b0))(pdVar12);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar47 + 0x3042b0))(pdVar9);\n          uVar37 = 0x1c93;\n          goto LAB_000a5724;\n        }" { (if_statement "if (pdVar12 != (double *)0x0) {\n            (**(code **)(puVar47 + 0x3042b0))(pdVar12);\n          }" if (parenthesized_expression "(pdVar12 != (double *)0x0)" ( (binary_expression "pdVar12 != (double *)0x0" identifier != (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            (**(code **)(puVar47 + 0x3042b0))(pdVar12);\n          }" { (expression_statement "(**(code **)(puVar47 + 0x3042b0))(pdVar12);" (call_expression "(**(code **)(puVar47 + 0x3042b0))(pdVar12)" (parenthesized_expression "(**(code **)(puVar47 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar47 + 0x3042b0)" * (pointer_expression "*(code **)(puVar47 + 0x3042b0)" * (cast_expression "(code **)(puVar47 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3042b0)" ( (binary_expression "puVar47 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar12)" ( identifier ))) ;) })) (labeled_statement "LAB_000a6cbc:\n          (**(code **)(puVar47 + 0x3042b0))(pdVar9);" statement_identifier : (expression_statement "(**(code **)(puVar47 + 0x3042b0))(pdVar9);" (call_expression "(**(code **)(puVar47 + 0x3042b0))(pdVar9)" (parenthesized_expression "(**(code **)(puVar47 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar47 + 0x3042b0)" * (pointer_expression "*(code **)(puVar47 + 0x3042b0)" * (cast_expression "(code **)(puVar47 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3042b0)" ( (binary_expression "puVar47 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar9)" ( identifier ))) ;)) (expression_statement "uVar37 = 0x1c93;" (assignment_expression "uVar37 = 0x1c93" identifier = number_literal) ;) (goto_statement "goto LAB_000a5724;" goto statement_identifier ;) })) (if_statement "if (pdVar12 == (double *)0x0) {\n          (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n          goto LAB_000a6cbc;\n        }" if (parenthesized_expression "(pdVar12 == (double *)0x0)" ( (binary_expression "pdVar12 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n          goto LAB_000a6cbc;\n        }" { (expression_statement "(**(code **)(puVar47 + 0x3042b0))(pdVar11);" (call_expression "(**(code **)(puVar47 + 0x3042b0))(pdVar11)" (parenthesized_expression "(**(code **)(puVar47 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar47 + 0x3042b0)" * (pointer_expression "*(code **)(puVar47 + 0x3042b0)" * (cast_expression "(code **)(puVar47 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3042b0)" ( (binary_expression "puVar47 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar11)" ( identifier ))) ;) (goto_statement "goto LAB_000a6cbc;" goto statement_identifier ;) })) (if_statement "if (ABS(dStack_260) < *(double *)(iVar8 + 0x13f8)) {\n          dVar72 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar63 = *(double *)(iVar13 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar63 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n        }\n        else if (ABS(dStack_258) < *(double *)(iVar8 + 0x13f8)) {\n          dVar63 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar72 = *(double *)(iVar13 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar63 = dStack_258 / dStack_260;\n          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a78) / dVar63;\n        }" if (parenthesized_expression "(ABS(dStack_260) < *(double *)(iVar8 + 0x13f8))" ( (binary_expression "ABS(dStack_260) < *(double *)(iVar8 + 0x13f8)" (call_expression "ABS(dStack_260)" identifier (argument_list "(dStack_260)" ( identifier ))) < (pointer_expression "*(double *)(iVar8 + 0x13f8)" * (cast_expression "(double *)(iVar8 + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x13f8)" ( (binary_expression "iVar8 + 0x13f8" identifier + number_literal) ))))) )) (compound_statement "{\n          dVar72 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar63 = *(double *)(iVar13 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar63 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n        }" { (expression_statement "dVar72 = 0.0;" (assignment_expression "dVar72 = 0.0" identifier = number_literal) ;) (if_statement "if (0.0 <= dStack_260) {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar63 = *(double *)(iVar13 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }" if (parenthesized_expression "(0.0 <= dStack_260)" ( (binary_expression "0.0 <= dStack_260" number_literal <= identifier) )) (compound_statement "{\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }" { (expression_statement "iVar13 = *(int *)(puVar47 + 0x303bd8);" (assignment_expression "iVar13 = *(int *)(puVar47 + 0x303bd8)" identifier = (pointer_expression "*(int *)(puVar47 + 0x303bd8)" * (cast_expression "(int *)(puVar47 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x303bd8)" ( (binary_expression "puVar47 + 0x303bd8" identifier + number_literal) ))))) ;) (if_statement "if (dStack_258 < 0.0) goto LAB_000a56e8;" if (parenthesized_expression "(dStack_258 < 0.0)" ( (binary_expression "dStack_258 < 0.0" identifier < number_literal) )) (goto_statement "goto LAB_000a56e8;" goto statement_identifier ;)) }) (else_clause "else {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar63 = *(double *)(iVar13 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }" else (compound_statement "{\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar63 = *(double *)(iVar13 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }" { (expression_statement "iVar13 = *(int *)(puVar47 + 0x303bd8);" (assignment_expression "iVar13 = *(int *)(puVar47 + 0x303bd8)" identifier = (pointer_expression "*(int *)(puVar47 + 0x303bd8)" * (cast_expression "(int *)(puVar47 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x303bd8)" ( (binary_expression "puVar47 + 0x303bd8" identifier + number_literal) ))))) ;) (if_statement "if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar63 = *(double *)(iVar13 + 0x47d0);\n              goto LAB_000a51b0;\n            }" if (parenthesized_expression "(0.0 <= dStack_258)" ( (binary_expression "0.0 <= dStack_258" number_literal <= identifier) )) (compound_statement "{\nLAB_000a56e8:\n              dVar63 = *(double *)(iVar13 + 0x47d0);\n              goto LAB_000a51b0;\n            }" { (labeled_statement "LAB_000a56e8:\n              dVar63 = *(double *)(iVar13 + 0x47d0);" statement_identifier : (expression_statement "dVar63 = *(double *)(iVar13 + 0x47d0);" (assignment_expression "dVar63 = *(double *)(iVar13 + 0x47d0)" identifier = (pointer_expression "*(double *)(iVar13 + 0x47d0)" * (cast_expression "(double *)(iVar13 + 0x47d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x47d0)" ( (binary_expression "iVar13 + 0x47d0" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_000a51b0;" goto statement_identifier ;) })) }))) (expression_statement "dVar63 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);" (assignment_expression "dVar63 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68)" identifier = (pointer_expression "*(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68)" * (cast_expression "(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar47 + 0x303bd0) + 0x1a68)" ( (binary_expression "*(int *)(puVar47 + 0x303bd0) + 0x1a68" (pointer_expression "*(int *)(puVar47 + 0x303bd0)" * (cast_expression "(int *)(puVar47 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x303bd0)" ( (binary_expression "puVar47 + 0x303bd0" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else if (ABS(dStack_258) < *(double *)(iVar8 + 0x13f8)) {\n          dVar63 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar72 = *(double *)(iVar13 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar63 = dStack_258 / dStack_260;\n          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a78) / dVar63;\n        }" else (if_statement "if (ABS(dStack_258) < *(double *)(iVar8 + 0x13f8)) {\n          dVar63 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar72 = *(double *)(iVar13 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar63 = dStack_258 / dStack_260;\n          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a78) / dVar63;\n        }" if (parenthesized_expression "(ABS(dStack_258) < *(double *)(iVar8 + 0x13f8))" ( (binary_expression "ABS(dStack_258) < *(double *)(iVar8 + 0x13f8)" (call_expression "ABS(dStack_258)" identifier (argument_list "(dStack_258)" ( identifier ))) < (pointer_expression "*(double *)(iVar8 + 0x13f8)" * (cast_expression "(double *)(iVar8 + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x13f8)" ( (binary_expression "iVar8 + 0x13f8" identifier + number_literal) ))))) )) (compound_statement "{\n          dVar63 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar72 = *(double *)(iVar13 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n        }" { (expression_statement "dVar63 = 0.0;" (assignment_expression "dVar63 = 0.0" identifier = number_literal) ;) (if_statement "if (0.0 <= dStack_258) {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar72 = *(double *)(iVar13 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }" if (parenthesized_expression "(0.0 <= dStack_258)" ( (binary_expression "0.0 <= dStack_258" number_literal <= identifier) )) (compound_statement "{\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }" { (expression_statement "iVar13 = *(int *)(puVar47 + 0x303bd8);" (assignment_expression "iVar13 = *(int *)(puVar47 + 0x303bd8)" identifier = (pointer_expression "*(int *)(puVar47 + 0x303bd8)" * (cast_expression "(int *)(puVar47 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x303bd8)" ( (binary_expression "puVar47 + 0x303bd8" identifier + number_literal) ))))) ;) (if_statement "if (dStack_260 < 0.0) goto LAB_000a684c;" if (parenthesized_expression "(dStack_260 < 0.0)" ( (binary_expression "dStack_260 < 0.0" identifier < number_literal) )) (goto_statement "goto LAB_000a684c;" goto statement_identifier ;)) }) (else_clause "else {\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar72 = *(double *)(iVar13 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }" else (compound_statement "{\n            iVar13 = *(int *)(puVar47 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar72 = *(double *)(iVar13 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }" { (expression_statement "iVar13 = *(int *)(puVar47 + 0x303bd8);" (assignment_expression "iVar13 = *(int *)(puVar47 + 0x303bd8)" identifier = (pointer_expression "*(int *)(puVar47 + 0x303bd8)" * (cast_expression "(int *)(puVar47 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x303bd8)" ( (binary_expression "puVar47 + 0x303bd8" identifier + number_literal) ))))) ;) (if_statement "if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar72 = *(double *)(iVar13 + 0x47d0);\n              goto LAB_000a51b0;\n            }" if (parenthesized_expression "(0.0 <= dStack_260)" ( (binary_expression "0.0 <= dStack_260" number_literal <= identifier) )) (compound_statement "{\nLAB_000a684c:\n              dVar72 = *(double *)(iVar13 + 0x47d0);\n              goto LAB_000a51b0;\n            }" { (labeled_statement "LAB_000a684c:\n              dVar72 = *(double *)(iVar13 + 0x47d0);" statement_identifier : (expression_statement "dVar72 = *(double *)(iVar13 + 0x47d0);" (assignment_expression "dVar72 = *(double *)(iVar13 + 0x47d0)" identifier = (pointer_expression "*(double *)(iVar13 + 0x47d0)" * (cast_expression "(double *)(iVar13 + 0x47d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x47d0)" ( (binary_expression "iVar13 + 0x47d0" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_000a51b0;" goto statement_identifier ;) })) }))) (expression_statement "dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);" (assignment_expression "dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68)" identifier = (pointer_expression "*(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68)" * (cast_expression "(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar47 + 0x303bd0) + 0x1a68)" ( (binary_expression "*(int *)(puVar47 + 0x303bd0) + 0x1a68" (pointer_expression "*(int *)(puVar47 + 0x303bd0)" * (cast_expression "(int *)(puVar47 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x303bd0)" ( (binary_expression "puVar47 + 0x303bd0" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n          dVar63 = dStack_258 / dStack_260;\n          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a78) / dVar63;\n        }" else (compound_statement "{\n          dVar63 = dStack_258 / dStack_260;\n          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a78) / dVar63;\n        }" { (expression_statement "dVar63 = dStack_258 / dStack_260;" (assignment_expression "dVar63 = dStack_258 / dStack_260" identifier = (binary_expression "dStack_258 / dStack_260" identifier / identifier)) ;) (expression_statement "dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a78) / dVar63;" (assignment_expression "dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a78) / dVar63" identifier = (binary_expression "*(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a78) / dVar63" (pointer_expression "*(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a78)" * (cast_expression "(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar47 + 0x303bd0) + 0x1a78)" ( (binary_expression "*(int *)(puVar47 + 0x303bd0) + 0x1a78" (pointer_expression "*(int *)(puVar47 + 0x303bd0)" * (cast_expression "(int *)(puVar47 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x303bd0)" ( (binary_expression "puVar47 + 0x303bd0" identifier + number_literal) )))) + number_literal) )))) / identifier)) ;) }))))) (labeled_statement "LAB_000a51b0:\n        dVar53 = (double)(**(code **)(puVar47 + 0x304288))(&draw_info->affine);" statement_identifier : (expression_statement "dVar53 = (double)(**(code **)(puVar47 + 0x304288))(&draw_info->affine);" (assignment_expression "dVar53 = (double)(**(code **)(puVar47 + 0x304288))(&draw_info->affine)" identifier = (cast_expression "(double)(**(code **)(puVar47 + 0x304288))(&draw_info->affine)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar47 + 0x304288))(&draw_info->affine)" (parenthesized_expression "(**(code **)(puVar47 + 0x304288))" ( (pointer_expression "**(code **)(puVar47 + 0x304288)" * (pointer_expression "*(code **)(puVar47 + 0x304288)" * (cast_expression "(code **)(puVar47 + 0x304288)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x304288)" ( (binary_expression "puVar47 + 0x304288" identifier + number_literal) ))))) )) (argument_list "(&draw_info->affine)" ( (pointer_expression "&draw_info->affine" & (field_expression "draw_info->affine" identifier -> field_identifier)) ))))) ;)) (expression_statement "iVar13 = draw_info->miterlimit * draw_info->miterlimit;" (assignment_expression "iVar13 = draw_info->miterlimit * draw_info->miterlimit" identifier = (binary_expression "draw_info->miterlimit * draw_info->miterlimit" (field_expression "draw_info->miterlimit" identifier -> field_identifier) * (field_expression "draw_info->miterlimit" identifier -> field_identifier))) ;) (expression_statement "dVar53 = dVar53 * draw_info->stroke_width *\n                 *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1400);" (assignment_expression "dVar53 = dVar53 * draw_info->stroke_width *\n                 *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1400)" identifier = (binary_expression "dVar53 * draw_info->stroke_width *\n                 *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1400)" (binary_expression "dVar53 * draw_info->stroke_width" identifier * (field_expression "draw_info->stroke_width" identifier -> field_identifier)) * (pointer_expression "*(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1400)" * (cast_expression "(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar47 + 0x303bd0) + 0x1400)" ( (binary_expression "*(int *)(puVar47 + 0x303bd0) + 0x1400" (pointer_expression "*(int *)(puVar47 + 0x303bd0)" * (cast_expression "(int *)(puVar47 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x303bd0)" ( (binary_expression "puVar47 + 0x303bd0" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "dVar57 = (double)iVar13;" (assignment_expression "dVar57 = (double)iVar13" identifier = (cast_expression "(double)iVar13" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar13 < 0) {\n          dVar57 = dVar57 + *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1418);\n        }" if (parenthesized_expression "(iVar13 < 0)" ( (binary_expression "iVar13 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar57 = dVar57 + *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1418);\n        }" { (expression_statement "dVar57 = dVar57 + *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1418);" (assignment_expression "dVar57 = dVar57 + *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1418)" identifier = (binary_expression "dVar57 + *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar47 + 0x303bd0) + 0x1418)" ( (binary_expression "*(int *)(puVar47 + 0x303bd0) + 0x1418" (pointer_expression "*(int *)(puVar47 + 0x303bd0)" * (cast_expression "(int *)(puVar47 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x303bd0)" ( (binary_expression "puVar47 + 0x303bd0" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar57 = dVar57 * dVar53 * dVar53;" (assignment_expression "dVar57 = dVar57 * dVar53 * dVar53" identifier = (binary_expression "dVar57 * dVar53 * dVar53" (binary_expression "dVar57 * dVar53" identifier * identifier) * identifier)) ;) (if_statement "if (draw_info->linecap == SquareCap) {\n          iVar13 = *(int *)(puVar47 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar54 = 0.0;\n              if (sVar40 == 1) {\n                dVar64 = 0.0;\n                sVar35 = 1;\nLAB_000a6998:\n                pdVar16 = pdVar9 + (sVar35 - 1) * 5;\n              }\n              else {\n                pdVar16 = pdVar9 + 5;\n                dVar64 = 0.0;\n              }\n            }\n            else {\n              dVar75 = *(double *)(iVar8 + 0x13f8);\n              dVar64 = *pdVar9 - pdVar9[5];\n              dVar54 = pdVar9[1] - pdVar9[6];\n              if ((dVar75 <= ABS(dVar64)) || (dVar75 <= ABS(dVar54))) {\n                pdVar16 = pdVar9 + 5;\n              }\n              else {\n                sVar24 = 1;\n                pdVar28 = pdVar9 + 10;\n                do {\n                  pdVar16 = pdVar28;\n                  sVar24 = sVar24 + 1;\n                  sVar35 = sVar40;\n                  if (sVar24 == sVar40) goto LAB_000a6998;\n                  dVar64 = *pdVar9 - *pdVar16;\n                  dVar54 = pdVar9[1] - pdVar16[1];\n                } while ((ABS(dVar64) < dVar75) && (pdVar28 = pdVar16 + 5, ABS(dVar54) < dVar75));\n              }\n            }\n            dVar75 = (double)(**(code **)(puVar47 + 0x304a08))(dVar64,dVar54);\n            iVar13 = sVar40 - 2;\n            dVar61 = pdVar16[1];\n            pdVar43 = (double *)((int)pdVar9 + iVar44 + -0x28);\n            pdVar28 = pdVar9 + iVar13 * 5;\n            *pdVar9 = *pdVar16 + (dVar64 * (dVar53 + dVar75)) / dVar75;\n            pdVar9[1] = dVar61 + (dVar54 * (dVar53 + dVar75)) / dVar75;\n            if (-1 < iVar13) {\n              dVar75 = *(double *)(iVar8 + 0x13f8);\n              dVar64 = *pdVar43 - *pdVar28;\n              dVar54 = pdVar43[1] - pdVar28[1];\n              if (ABS(dVar64) < dVar75) {\n                pdVar16 = pdVar9 + (sVar40 - 3) * 5;\n                do {\n                  pdVar28 = pdVar16;\n                  if (dVar75 <= ABS(dVar54)) {\n                    pdVar28 = pdVar9 + iVar13 * 5;\n                    break;\n                  }\n                  iVar13 = iVar13 + -1;\n                  if (iVar13 == -1) break;\n                  dVar64 = *pdVar43 - *pdVar28;\n                  dVar54 = pdVar43[1] - pdVar28[1];\n                  pdVar16 = pdVar28 + -5;\n                } while (ABS(dVar64) < dVar75);\n              }\n            }\n            dVar75 = (double)(**(code **)(puVar47 + 0x304a08))(dVar64,dVar54);\n            dVar61 = pdVar28[1];\n            *pdVar43 = *pdVar28 + (dVar64 * (dVar53 + dVar75)) / dVar75;\n            pdVar43[1] = dVar61 + (dVar54 * (dVar53 + dVar75)) / dVar75;\n            goto LAB_000a5220;\n          }\n        }\n        else {\nLAB_000a5220:\n          iVar13 = *(int *)(puVar47 + 0x303bd0);\n        }" if (parenthesized_expression "(draw_info->linecap == SquareCap)" ( (binary_expression "draw_info->linecap == SquareCap" (field_expression "draw_info->linecap" identifier -> field_identifier) == identifier) )) (compound_statement "{\n          iVar13 = *(int *)(puVar47 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar54 = 0.0;\n              if (sVar40 == 1) {\n                dVar64 = 0.0;\n                sVar35 = 1;\nLAB_000a6998:\n                pdVar16 = pdVar9 + (sVar35 - 1) * 5;\n              }\n              else {\n                pdVar16 = pdVar9 + 5;\n                dVar64 = 0.0;\n              }\n            }\n            else {\n              dVar75 = *(double *)(iVar8 + 0x13f8);\n              dVar64 = *pdVar9 - pdVar9[5];\n              dVar54 = pdVar9[1] - pdVar9[6];\n              if ((dVar75 <= ABS(dVar64)) || (dVar75 <= ABS(dVar54))) {\n                pdVar16 = pdVar9 + 5;\n              }\n              else {\n                sVar24 = 1;\n                pdVar28 = pdVar9 + 10;\n                do {\n                  pdVar16 = pdVar28;\n                  sVar24 = sVar24 + 1;\n                  sVar35 = sVar40;\n                  if (sVar24 == sVar40) goto LAB_000a6998;\n                  dVar64 = *pdVar9 - *pdVar16;\n                  dVar54 = pdVar9[1] - pdVar16[1];\n                } while ((ABS(dVar64) < dVar75) && (pdVar28 = pdVar16 + 5, ABS(dVar54) < dVar75));\n              }\n            }\n            dVar75 = (double)(**(code **)(puVar47 + 0x304a08))(dVar64,dVar54);\n            iVar13 = sVar40 - 2;\n            dVar61 = pdVar16[1];\n            pdVar43 = (double *)((int)pdVar9 + iVar44 + -0x28);\n            pdVar28 = pdVar9 + iVar13 * 5;\n            *pdVar9 = *pdVar16 + (dVar64 * (dVar53 + dVar75)) / dVar75;\n            pdVar9[1] = dVar61 + (dVar54 * (dVar53 + dVar75)) / dVar75;\n            if (-1 < iVar13) {\n              dVar75 = *(double *)(iVar8 + 0x13f8);\n              dVar64 = *pdVar43 - *pdVar28;\n              dVar54 = pdVar43[1] - pdVar28[1];\n              if (ABS(dVar64) < dVar75) {\n                pdVar16 = pdVar9 + (sVar40 - 3) * 5;\n                do {\n                  pdVar28 = pdVar16;\n                  if (dVar75 <= ABS(dVar54)) {\n                    pdVar28 = pdVar9 + iVar13 * 5;\n                    break;\n                  }\n                  iVar13 = iVar13 + -1;\n                  if (iVar13 == -1) break;\n                  dVar64 = *pdVar43 - *pdVar28;\n                  dVar54 = pdVar43[1] - pdVar28[1];\n                  pdVar16 = pdVar28 + -5;\n                } while (ABS(dVar64) < dVar75);\n              }\n            }\n            dVar75 = (double)(**(code **)(puVar47 + 0x304a08))(dVar64,dVar54);\n            dVar61 = pdVar28[1];\n            *pdVar43 = *pdVar28 + (dVar64 * (dVar53 + dVar75)) / dVar75;\n            pdVar43[1] = dVar61 + (dVar54 * (dVar53 + dVar75)) / dVar75;\n            goto LAB_000a5220;\n          }\n        }" { (expression_statement "iVar13 = *(int *)(puVar47 + 0x303bd0);" (assignment_expression "iVar13 = *(int *)(puVar47 + 0x303bd0)" identifier = (pointer_expression "*(int *)(puVar47 + 0x303bd0)" * (cast_expression "(int *)(puVar47 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x303bd0)" ( (binary_expression "puVar47 + 0x303bd0" identifier + number_literal) ))))) ;) (if_statement "if (!bVar2) {\n            if (bVar1) {\n              dVar54 = 0.0;\n              if (sVar40 == 1) {\n                dVar64 = 0.0;\n                sVar35 = 1;\nLAB_000a6998:\n                pdVar16 = pdVar9 + (sVar35 - 1) * 5;\n              }\n              else {\n                pdVar16 = pdVar9 + 5;\n                dVar64 = 0.0;\n              }\n            }\n            else {\n              dVar75 = *(double *)(iVar8 + 0x13f8);\n              dVar64 = *pdVar9 - pdVar9[5];\n              dVar54 = pdVar9[1] - pdVar9[6];\n              if ((dVar75 <= ABS(dVar64)) || (dVar75 <= ABS(dVar54))) {\n                pdVar16 = pdVar9 + 5;\n              }\n              else {\n                sVar24 = 1;\n                pdVar28 = pdVar9 + 10;\n                do {\n                  pdVar16 = pdVar28;\n                  sVar24 = sVar24 + 1;\n                  sVar35 = sVar40;\n                  if (sVar24 == sVar40) goto LAB_000a6998;\n                  dVar64 = *pdVar9 - *pdVar16;\n                  dVar54 = pdVar9[1] - pdVar16[1];\n                } while ((ABS(dVar64) < dVar75) && (pdVar28 = pdVar16 + 5, ABS(dVar54) < dVar75));\n              }\n            }\n            dVar75 = (double)(**(code **)(puVar47 + 0x304a08))(dVar64,dVar54);\n            iVar13 = sVar40 - 2;\n            dVar61 = pdVar16[1];\n            pdVar43 = (double *)((int)pdVar9 + iVar44 + -0x28);\n            pdVar28 = pdVar9 + iVar13 * 5;\n            *pdVar9 = *pdVar16 + (dVar64 * (dVar53 + dVar75)) / dVar75;\n            pdVar9[1] = dVar61 + (dVar54 * (dVar53 + dVar75)) / dVar75;\n            if (-1 < iVar13) {\n              dVar75 = *(double *)(iVar8 + 0x13f8);\n              dVar64 = *pdVar43 - *pdVar28;\n              dVar54 = pdVar43[1] - pdVar28[1];\n              if (ABS(dVar64) < dVar75) {\n                pdVar16 = pdVar9 + (sVar40 - 3) * 5;\n                do {\n                  pdVar28 = pdVar16;\n                  if (dVar75 <= ABS(dVar54)) {\n                    pdVar28 = pdVar9 + iVar13 * 5;\n                    break;\n                  }\n                  iVar13 = iVar13 + -1;\n                  if (iVar13 == -1) break;\n                  dVar64 = *pdVar43 - *pdVar28;\n                  dVar54 = pdVar43[1] - pdVar28[1];\n                  pdVar16 = pdVar28 + -5;\n                } while (ABS(dVar64) < dVar75);\n              }\n            }\n            dVar75 = (double)(**(code **)(puVar47 + 0x304a08))(dVar64,dVar54);\n            dVar61 = pdVar28[1];\n            *pdVar43 = *pdVar28 + (dVar64 * (dVar53 + dVar75)) / dVar75;\n            pdVar43[1] = dVar61 + (dVar54 * (dVar53 + dVar75)) / dVar75;\n            goto LAB_000a5220;\n          }" if (parenthesized_expression "(!bVar2)" ( (unary_expression "!bVar2" ! identifier) )) (compound_statement "{\n            if (bVar1) {\n              dVar54 = 0.0;\n              if (sVar40 == 1) {\n                dVar64 = 0.0;\n                sVar35 = 1;\nLAB_000a6998:\n                pdVar16 = pdVar9 + (sVar35 - 1) * 5;\n              }\n              else {\n                pdVar16 = pdVar9 + 5;\n                dVar64 = 0.0;\n              }\n            }\n            else {\n              dVar75 = *(double *)(iVar8 + 0x13f8);\n              dVar64 = *pdVar9 - pdVar9[5];\n              dVar54 = pdVar9[1] - pdVar9[6];\n              if ((dVar75 <= ABS(dVar64)) || (dVar75 <= ABS(dVar54))) {\n                pdVar16 = pdVar9 + 5;\n              }\n              else {\n                sVar24 = 1;\n                pdVar28 = pdVar9 + 10;\n                do {\n                  pdVar16 = pdVar28;\n                  sVar24 = sVar24 + 1;\n                  sVar35 = sVar40;\n                  if (sVar24 == sVar40) goto LAB_000a6998;\n                  dVar64 = *pdVar9 - *pdVar16;\n                  dVar54 = pdVar9[1] - pdVar16[1];\n                } while ((ABS(dVar64) < dVar75) && (pdVar28 = pdVar16 + 5, ABS(dVar54) < dVar75));\n              }\n            }\n            dVar75 = (double)(**(code **)(puVar47 + 0x304a08))(dVar64,dVar54);\n            iVar13 = sVar40 - 2;\n            dVar61 = pdVar16[1];\n            pdVar43 = (double *)((int)pdVar9 + iVar44 + -0x28);\n            pdVar28 = pdVar9 + iVar13 * 5;\n            *pdVar9 = *pdVar16 + (dVar64 * (dVar53 + dVar75)) / dVar75;\n            pdVar9[1] = dVar61 + (dVar54 * (dVar53 + dVar75)) / dVar75;\n            if (-1 < iVar13) {\n              dVar75 = *(double *)(iVar8 + 0x13f8);\n              dVar64 = *pdVar43 - *pdVar28;\n              dVar54 = pdVar43[1] - pdVar28[1];\n              if (ABS(dVar64) < dVar75) {\n                pdVar16 = pdVar9 + (sVar40 - 3) * 5;\n                do {\n                  pdVar28 = pdVar16;\n                  if (dVar75 <= ABS(dVar54)) {\n                    pdVar28 = pdVar9 + iVar13 * 5;\n                    break;\n                  }\n                  iVar13 = iVar13 + -1;\n                  if (iVar13 == -1) break;\n                  dVar64 = *pdVar43 - *pdVar28;\n                  dVar54 = pdVar43[1] - pdVar28[1];\n                  pdVar16 = pdVar28 + -5;\n                } while (ABS(dVar64) < dVar75);\n              }\n            }\n            dVar75 = (double)(**(code **)(puVar47 + 0x304a08))(dVar64,dVar54);\n            dVar61 = pdVar28[1];\n            *pdVar43 = *pdVar28 + (dVar64 * (dVar53 + dVar75)) / dVar75;\n            pdVar43[1] = dVar61 + (dVar54 * (dVar53 + dVar75)) / dVar75;\n            goto LAB_000a5220;\n          }" { (if_statement "if (bVar1) {\n              dVar54 = 0.0;\n              if (sVar40 == 1) {\n                dVar64 = 0.0;\n                sVar35 = 1;\nLAB_000a6998:\n                pdVar16 = pdVar9 + (sVar35 - 1) * 5;\n              }\n              else {\n                pdVar16 = pdVar9 + 5;\n                dVar64 = 0.0;\n              }\n            }\n            else {\n              dVar75 = *(double *)(iVar8 + 0x13f8);\n              dVar64 = *pdVar9 - pdVar9[5];\n              dVar54 = pdVar9[1] - pdVar9[6];\n              if ((dVar75 <= ABS(dVar64)) || (dVar75 <= ABS(dVar54))) {\n                pdVar16 = pdVar9 + 5;\n              }\n              else {\n                sVar24 = 1;\n                pdVar28 = pdVar9 + 10;\n                do {\n                  pdVar16 = pdVar28;\n                  sVar24 = sVar24 + 1;\n                  sVar35 = sVar40;\n                  if (sVar24 == sVar40) goto LAB_000a6998;\n                  dVar64 = *pdVar9 - *pdVar16;\n                  dVar54 = pdVar9[1] - pdVar16[1];\n                } while ((ABS(dVar64) < dVar75) && (pdVar28 = pdVar16 + 5, ABS(dVar54) < dVar75));\n              }\n            }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n              dVar54 = 0.0;\n              if (sVar40 == 1) {\n                dVar64 = 0.0;\n                sVar35 = 1;\nLAB_000a6998:\n                pdVar16 = pdVar9 + (sVar35 - 1) * 5;\n              }\n              else {\n                pdVar16 = pdVar9 + 5;\n                dVar64 = 0.0;\n              }\n            }" { (expression_statement "dVar54 = 0.0;" (assignment_expression "dVar54 = 0.0" identifier = number_literal) ;) (if_statement "if (sVar40 == 1) {\n                dVar64 = 0.0;\n                sVar35 = 1;\nLAB_000a6998:\n                pdVar16 = pdVar9 + (sVar35 - 1) * 5;\n              }\n              else {\n                pdVar16 = pdVar9 + 5;\n                dVar64 = 0.0;\n              }" if (parenthesized_expression "(sVar40 == 1)" ( (binary_expression "sVar40 == 1" identifier == number_literal) )) (compound_statement "{\n                dVar64 = 0.0;\n                sVar35 = 1;\nLAB_000a6998:\n                pdVar16 = pdVar9 + (sVar35 - 1) * 5;\n              }" { (expression_statement "dVar64 = 0.0;" (assignment_expression "dVar64 = 0.0" identifier = number_literal) ;) (expression_statement "sVar35 = 1;" (assignment_expression "sVar35 = 1" identifier = number_literal) ;) (labeled_statement "LAB_000a6998:\n                pdVar16 = pdVar9 + (sVar35 - 1) * 5;" statement_identifier : (expression_statement "pdVar16 = pdVar9 + (sVar35 - 1) * 5;" (assignment_expression "pdVar16 = pdVar9 + (sVar35 - 1) * 5" identifier = (binary_expression "pdVar9 + (sVar35 - 1) * 5" identifier + (binary_expression "(sVar35 - 1) * 5" (parenthesized_expression "(sVar35 - 1)" ( (binary_expression "sVar35 - 1" identifier - number_literal) )) * number_literal))) ;)) }) (else_clause "else {\n                pdVar16 = pdVar9 + 5;\n                dVar64 = 0.0;\n              }" else (compound_statement "{\n                pdVar16 = pdVar9 + 5;\n                dVar64 = 0.0;\n              }" { (expression_statement "pdVar16 = pdVar9 + 5;" (assignment_expression "pdVar16 = pdVar9 + 5" identifier = (binary_expression "pdVar9 + 5" identifier + number_literal)) ;) (expression_statement "dVar64 = 0.0;" (assignment_expression "dVar64 = 0.0" identifier = number_literal) ;) }))) }) (else_clause "else {\n              dVar75 = *(double *)(iVar8 + 0x13f8);\n              dVar64 = *pdVar9 - pdVar9[5];\n              dVar54 = pdVar9[1] - pdVar9[6];\n              if ((dVar75 <= ABS(dVar64)) || (dVar75 <= ABS(dVar54))) {\n                pdVar16 = pdVar9 + 5;\n              }\n              else {\n                sVar24 = 1;\n                pdVar28 = pdVar9 + 10;\n                do {\n                  pdVar16 = pdVar28;\n                  sVar24 = sVar24 + 1;\n                  sVar35 = sVar40;\n                  if (sVar24 == sVar40) goto LAB_000a6998;\n                  dVar64 = *pdVar9 - *pdVar16;\n                  dVar54 = pdVar9[1] - pdVar16[1];\n                } while ((ABS(dVar64) < dVar75) && (pdVar28 = pdVar16 + 5, ABS(dVar54) < dVar75));\n              }\n            }" else (compound_statement "{\n              dVar75 = *(double *)(iVar8 + 0x13f8);\n              dVar64 = *pdVar9 - pdVar9[5];\n              dVar54 = pdVar9[1] - pdVar9[6];\n              if ((dVar75 <= ABS(dVar64)) || (dVar75 <= ABS(dVar54))) {\n                pdVar16 = pdVar9 + 5;\n              }\n              else {\n                sVar24 = 1;\n                pdVar28 = pdVar9 + 10;\n                do {\n                  pdVar16 = pdVar28;\n                  sVar24 = sVar24 + 1;\n                  sVar35 = sVar40;\n                  if (sVar24 == sVar40) goto LAB_000a6998;\n                  dVar64 = *pdVar9 - *pdVar16;\n                  dVar54 = pdVar9[1] - pdVar16[1];\n                } while ((ABS(dVar64) < dVar75) && (pdVar28 = pdVar16 + 5, ABS(dVar54) < dVar75));\n              }\n            }" { (expression_statement "dVar75 = *(double *)(iVar8 + 0x13f8);" (assignment_expression "dVar75 = *(double *)(iVar8 + 0x13f8)" identifier = (pointer_expression "*(double *)(iVar8 + 0x13f8)" * (cast_expression "(double *)(iVar8 + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x13f8)" ( (binary_expression "iVar8 + 0x13f8" identifier + number_literal) ))))) ;) (expression_statement "dVar64 = *pdVar9 - pdVar9[5];" (assignment_expression "dVar64 = *pdVar9 - pdVar9[5]" identifier = (binary_expression "*pdVar9 - pdVar9[5]" (pointer_expression "*pdVar9" * identifier) - (subscript_expression "pdVar9[5]" identifier [ number_literal ]))) ;) (expression_statement "dVar54 = pdVar9[1] - pdVar9[6];" (assignment_expression "dVar54 = pdVar9[1] - pdVar9[6]" identifier = (binary_expression "pdVar9[1] - pdVar9[6]" (subscript_expression "pdVar9[1]" identifier [ number_literal ]) - (subscript_expression "pdVar9[6]" identifier [ number_literal ]))) ;) (if_statement "if ((dVar75 <= ABS(dVar64)) || (dVar75 <= ABS(dVar54))) {\n                pdVar16 = pdVar9 + 5;\n              }\n              else {\n                sVar24 = 1;\n                pdVar28 = pdVar9 + 10;\n                do {\n                  pdVar16 = pdVar28;\n                  sVar24 = sVar24 + 1;\n                  sVar35 = sVar40;\n                  if (sVar24 == sVar40) goto LAB_000a6998;\n                  dVar64 = *pdVar9 - *pdVar16;\n                  dVar54 = pdVar9[1] - pdVar16[1];\n                } while ((ABS(dVar64) < dVar75) && (pdVar28 = pdVar16 + 5, ABS(dVar54) < dVar75));\n              }" if (parenthesized_expression "((dVar75 <= ABS(dVar64)) || (dVar75 <= ABS(dVar54)))" ( (binary_expression "(dVar75 <= ABS(dVar64)) || (dVar75 <= ABS(dVar54))" (parenthesized_expression "(dVar75 <= ABS(dVar64))" ( (binary_expression "dVar75 <= ABS(dVar64)" identifier <= (call_expression "ABS(dVar64)" identifier (argument_list "(dVar64)" ( identifier )))) )) || (parenthesized_expression "(dVar75 <= ABS(dVar54))" ( (binary_expression "dVar75 <= ABS(dVar54)" identifier <= (call_expression "ABS(dVar54)" identifier (argument_list "(dVar54)" ( identifier )))) ))) )) (compound_statement "{\n                pdVar16 = pdVar9 + 5;\n              }" { (expression_statement "pdVar16 = pdVar9 + 5;" (assignment_expression "pdVar16 = pdVar9 + 5" identifier = (binary_expression "pdVar9 + 5" identifier + number_literal)) ;) }) (else_clause "else {\n                sVar24 = 1;\n                pdVar28 = pdVar9 + 10;\n                do {\n                  pdVar16 = pdVar28;\n                  sVar24 = sVar24 + 1;\n                  sVar35 = sVar40;\n                  if (sVar24 == sVar40) goto LAB_000a6998;\n                  dVar64 = *pdVar9 - *pdVar16;\n                  dVar54 = pdVar9[1] - pdVar16[1];\n                } while ((ABS(dVar64) < dVar75) && (pdVar28 = pdVar16 + 5, ABS(dVar54) < dVar75));\n              }" else (compound_statement "{\n                sVar24 = 1;\n                pdVar28 = pdVar9 + 10;\n                do {\n                  pdVar16 = pdVar28;\n                  sVar24 = sVar24 + 1;\n                  sVar35 = sVar40;\n                  if (sVar24 == sVar40) goto LAB_000a6998;\n                  dVar64 = *pdVar9 - *pdVar16;\n                  dVar54 = pdVar9[1] - pdVar16[1];\n                } while ((ABS(dVar64) < dVar75) && (pdVar28 = pdVar16 + 5, ABS(dVar54) < dVar75));\n              }" { (expression_statement "sVar24 = 1;" (assignment_expression "sVar24 = 1" identifier = number_literal) ;) (expression_statement "pdVar28 = pdVar9 + 10;" (assignment_expression "pdVar28 = pdVar9 + 10" identifier = (binary_expression "pdVar9 + 10" identifier + number_literal)) ;) (do_statement "do {\n                  pdVar16 = pdVar28;\n                  sVar24 = sVar24 + 1;\n                  sVar35 = sVar40;\n                  if (sVar24 == sVar40) goto LAB_000a6998;\n                  dVar64 = *pdVar9 - *pdVar16;\n                  dVar54 = pdVar9[1] - pdVar16[1];\n                } while ((ABS(dVar64) < dVar75) && (pdVar28 = pdVar16 + 5, ABS(dVar54) < dVar75));" do (compound_statement "{\n                  pdVar16 = pdVar28;\n                  sVar24 = sVar24 + 1;\n                  sVar35 = sVar40;\n                  if (sVar24 == sVar40) goto LAB_000a6998;\n                  dVar64 = *pdVar9 - *pdVar16;\n                  dVar54 = pdVar9[1] - pdVar16[1];\n                }" { (expression_statement "pdVar16 = pdVar28;" (assignment_expression "pdVar16 = pdVar28" identifier = identifier) ;) (expression_statement "sVar24 = sVar24 + 1;" (assignment_expression "sVar24 = sVar24 + 1" identifier = (binary_expression "sVar24 + 1" identifier + number_literal)) ;) (expression_statement "sVar35 = sVar40;" (assignment_expression "sVar35 = sVar40" identifier = identifier) ;) (if_statement "if (sVar24 == sVar40) goto LAB_000a6998;" if (parenthesized_expression "(sVar24 == sVar40)" ( (binary_expression "sVar24 == sVar40" identifier == identifier) )) (goto_statement "goto LAB_000a6998;" goto statement_identifier ;)) (expression_statement "dVar64 = *pdVar9 - *pdVar16;" (assignment_expression "dVar64 = *pdVar9 - *pdVar16" identifier = (binary_expression "*pdVar9 - *pdVar16" (pointer_expression "*pdVar9" * identifier) - (pointer_expression "*pdVar16" * identifier))) ;) (expression_statement "dVar54 = pdVar9[1] - pdVar16[1];" (assignment_expression "dVar54 = pdVar9[1] - pdVar16[1]" identifier = (binary_expression "pdVar9[1] - pdVar16[1]" (subscript_expression "pdVar9[1]" identifier [ number_literal ]) - (subscript_expression "pdVar16[1]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "((ABS(dVar64) < dVar75) && (pdVar28 = pdVar16 + 5, ABS(dVar54) < dVar75))" ( (binary_expression "(ABS(dVar64) < dVar75) && (pdVar28 = pdVar16 + 5, ABS(dVar54) < dVar75)" (parenthesized_expression "(ABS(dVar64) < dVar75)" ( (binary_expression "ABS(dVar64) < dVar75" (call_expression "ABS(dVar64)" identifier (argument_list "(dVar64)" ( identifier ))) < identifier) )) && (parenthesized_expression "(pdVar28 = pdVar16 + 5, ABS(dVar54) < dVar75)" ( (comma_expression "pdVar28 = pdVar16 + 5, ABS(dVar54) < dVar75" (assignment_expression "pdVar28 = pdVar16 + 5" identifier = (binary_expression "pdVar16 + 5" identifier + number_literal)) , (binary_expression "ABS(dVar54) < dVar75" (call_expression "ABS(dVar54)" identifier (argument_list "(dVar54)" ( identifier ))) < identifier)) ))) )) ;) }))) }))) (expression_statement "dVar75 = (double)(**(code **)(puVar47 + 0x304a08))(dVar64,dVar54);" (assignment_expression "dVar75 = (double)(**(code **)(puVar47 + 0x304a08))(dVar64,dVar54)" identifier = (cast_expression "(double)(**(code **)(puVar47 + 0x304a08))(dVar64,dVar54)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar47 + 0x304a08))(dVar64,dVar54)" (parenthesized_expression "(**(code **)(puVar47 + 0x304a08))" ( (pointer_expression "**(code **)(puVar47 + 0x304a08)" * (pointer_expression "*(code **)(puVar47 + 0x304a08)" * (cast_expression "(code **)(puVar47 + 0x304a08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x304a08)" ( (binary_expression "puVar47 + 0x304a08" identifier + number_literal) ))))) )) (argument_list "(dVar64,dVar54)" ( identifier , identifier ))))) ;) (expression_statement "iVar13 = sVar40 - 2;" (assignment_expression "iVar13 = sVar40 - 2" identifier = (binary_expression "sVar40 - 2" identifier - number_literal)) ;) (expression_statement "dVar61 = pdVar16[1];" (assignment_expression "dVar61 = pdVar16[1]" identifier = (subscript_expression "pdVar16[1]" identifier [ number_literal ])) ;) (expression_statement "pdVar43 = (double *)((int)pdVar9 + iVar44 + -0x28);" (assignment_expression "pdVar43 = (double *)((int)pdVar9 + iVar44 + -0x28)" identifier = (cast_expression "(double *)((int)pdVar9 + iVar44 + -0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar9 + iVar44 + -0x28)" ( (binary_expression "(int)pdVar9 + iVar44 + -0x28" (binary_expression "(int)pdVar9 + iVar44" (cast_expression "(int)pdVar9" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "pdVar28 = pdVar9 + iVar13 * 5;" (assignment_expression "pdVar28 = pdVar9 + iVar13 * 5" identifier = (binary_expression "pdVar9 + iVar13 * 5" identifier + (binary_expression "iVar13 * 5" identifier * number_literal))) ;) (expression_statement "*pdVar9 = *pdVar16 + (dVar64 * (dVar53 + dVar75)) / dVar75;" (assignment_expression "*pdVar9 = *pdVar16 + (dVar64 * (dVar53 + dVar75)) / dVar75" (pointer_expression "*pdVar9" * identifier) = (binary_expression "*pdVar16 + (dVar64 * (dVar53 + dVar75)) / dVar75" (pointer_expression "*pdVar16" * identifier) + (binary_expression "(dVar64 * (dVar53 + dVar75)) / dVar75" (parenthesized_expression "(dVar64 * (dVar53 + dVar75))" ( (binary_expression "dVar64 * (dVar53 + dVar75)" identifier * (parenthesized_expression "(dVar53 + dVar75)" ( (binary_expression "dVar53 + dVar75" identifier + identifier) ))) )) / identifier))) ;) (expression_statement "pdVar9[1] = dVar61 + (dVar54 * (dVar53 + dVar75)) / dVar75;" (assignment_expression "pdVar9[1] = dVar61 + (dVar54 * (dVar53 + dVar75)) / dVar75" (subscript_expression "pdVar9[1]" identifier [ number_literal ]) = (binary_expression "dVar61 + (dVar54 * (dVar53 + dVar75)) / dVar75" identifier + (binary_expression "(dVar54 * (dVar53 + dVar75)) / dVar75" (parenthesized_expression "(dVar54 * (dVar53 + dVar75))" ( (binary_expression "dVar54 * (dVar53 + dVar75)" identifier * (parenthesized_expression "(dVar53 + dVar75)" ( (binary_expression "dVar53 + dVar75" identifier + identifier) ))) )) / identifier))) ;) (if_statement "if (-1 < iVar13) {\n              dVar75 = *(double *)(iVar8 + 0x13f8);\n              dVar64 = *pdVar43 - *pdVar28;\n              dVar54 = pdVar43[1] - pdVar28[1];\n              if (ABS(dVar64) < dVar75) {\n                pdVar16 = pdVar9 + (sVar40 - 3) * 5;\n                do {\n                  pdVar28 = pdVar16;\n                  if (dVar75 <= ABS(dVar54)) {\n                    pdVar28 = pdVar9 + iVar13 * 5;\n                    break;\n                  }\n                  iVar13 = iVar13 + -1;\n                  if (iVar13 == -1) break;\n                  dVar64 = *pdVar43 - *pdVar28;\n                  dVar54 = pdVar43[1] - pdVar28[1];\n                  pdVar16 = pdVar28 + -5;\n                } while (ABS(dVar64) < dVar75);\n              }\n            }" if (parenthesized_expression "(-1 < iVar13)" ( (binary_expression "-1 < iVar13" number_literal < identifier) )) (compound_statement "{\n              dVar75 = *(double *)(iVar8 + 0x13f8);\n              dVar64 = *pdVar43 - *pdVar28;\n              dVar54 = pdVar43[1] - pdVar28[1];\n              if (ABS(dVar64) < dVar75) {\n                pdVar16 = pdVar9 + (sVar40 - 3) * 5;\n                do {\n                  pdVar28 = pdVar16;\n                  if (dVar75 <= ABS(dVar54)) {\n                    pdVar28 = pdVar9 + iVar13 * 5;\n                    break;\n                  }\n                  iVar13 = iVar13 + -1;\n                  if (iVar13 == -1) break;\n                  dVar64 = *pdVar43 - *pdVar28;\n                  dVar54 = pdVar43[1] - pdVar28[1];\n                  pdVar16 = pdVar28 + -5;\n                } while (ABS(dVar64) < dVar75);\n              }\n            }" { (expression_statement "dVar75 = *(double *)(iVar8 + 0x13f8);" (assignment_expression "dVar75 = *(double *)(iVar8 + 0x13f8)" identifier = (pointer_expression "*(double *)(iVar8 + 0x13f8)" * (cast_expression "(double *)(iVar8 + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x13f8)" ( (binary_expression "iVar8 + 0x13f8" identifier + number_literal) ))))) ;) (expression_statement "dVar64 = *pdVar43 - *pdVar28;" (assignment_expression "dVar64 = *pdVar43 - *pdVar28" identifier = (binary_expression "*pdVar43 - *pdVar28" (pointer_expression "*pdVar43" * identifier) - (pointer_expression "*pdVar28" * identifier))) ;) (expression_statement "dVar54 = pdVar43[1] - pdVar28[1];" (assignment_expression "dVar54 = pdVar43[1] - pdVar28[1]" identifier = (binary_expression "pdVar43[1] - pdVar28[1]" (subscript_expression "pdVar43[1]" identifier [ number_literal ]) - (subscript_expression "pdVar28[1]" identifier [ number_literal ]))) ;) (if_statement "if (ABS(dVar64) < dVar75) {\n                pdVar16 = pdVar9 + (sVar40 - 3) * 5;\n                do {\n                  pdVar28 = pdVar16;\n                  if (dVar75 <= ABS(dVar54)) {\n                    pdVar28 = pdVar9 + iVar13 * 5;\n                    break;\n                  }\n                  iVar13 = iVar13 + -1;\n                  if (iVar13 == -1) break;\n                  dVar64 = *pdVar43 - *pdVar28;\n                  dVar54 = pdVar43[1] - pdVar28[1];\n                  pdVar16 = pdVar28 + -5;\n                } while (ABS(dVar64) < dVar75);\n              }" if (parenthesized_expression "(ABS(dVar64) < dVar75)" ( (binary_expression "ABS(dVar64) < dVar75" (call_expression "ABS(dVar64)" identifier (argument_list "(dVar64)" ( identifier ))) < identifier) )) (compound_statement "{\n                pdVar16 = pdVar9 + (sVar40 - 3) * 5;\n                do {\n                  pdVar28 = pdVar16;\n                  if (dVar75 <= ABS(dVar54)) {\n                    pdVar28 = pdVar9 + iVar13 * 5;\n                    break;\n                  }\n                  iVar13 = iVar13 + -1;\n                  if (iVar13 == -1) break;\n                  dVar64 = *pdVar43 - *pdVar28;\n                  dVar54 = pdVar43[1] - pdVar28[1];\n                  pdVar16 = pdVar28 + -5;\n                } while (ABS(dVar64) < dVar75);\n              }" { (expression_statement "pdVar16 = pdVar9 + (sVar40 - 3) * 5;" (assignment_expression "pdVar16 = pdVar9 + (sVar40 - 3) * 5" identifier = (binary_expression "pdVar9 + (sVar40 - 3) * 5" identifier + (binary_expression "(sVar40 - 3) * 5" (parenthesized_expression "(sVar40 - 3)" ( (binary_expression "sVar40 - 3" identifier - number_literal) )) * number_literal))) ;) (do_statement "do {\n                  pdVar28 = pdVar16;\n                  if (dVar75 <= ABS(dVar54)) {\n                    pdVar28 = pdVar9 + iVar13 * 5;\n                    break;\n                  }\n                  iVar13 = iVar13 + -1;\n                  if (iVar13 == -1) break;\n                  dVar64 = *pdVar43 - *pdVar28;\n                  dVar54 = pdVar43[1] - pdVar28[1];\n                  pdVar16 = pdVar28 + -5;\n                } while (ABS(dVar64) < dVar75);" do (compound_statement "{\n                  pdVar28 = pdVar16;\n                  if (dVar75 <= ABS(dVar54)) {\n                    pdVar28 = pdVar9 + iVar13 * 5;\n                    break;\n                  }\n                  iVar13 = iVar13 + -1;\n                  if (iVar13 == -1) break;\n                  dVar64 = *pdVar43 - *pdVar28;\n                  dVar54 = pdVar43[1] - pdVar28[1];\n                  pdVar16 = pdVar28 + -5;\n                }" { (expression_statement "pdVar28 = pdVar16;" (assignment_expression "pdVar28 = pdVar16" identifier = identifier) ;) (if_statement "if (dVar75 <= ABS(dVar54)) {\n                    pdVar28 = pdVar9 + iVar13 * 5;\n                    break;\n                  }" if (parenthesized_expression "(dVar75 <= ABS(dVar54))" ( (binary_expression "dVar75 <= ABS(dVar54)" identifier <= (call_expression "ABS(dVar54)" identifier (argument_list "(dVar54)" ( identifier )))) )) (compound_statement "{\n                    pdVar28 = pdVar9 + iVar13 * 5;\n                    break;\n                  }" { (expression_statement "pdVar28 = pdVar9 + iVar13 * 5;" (assignment_expression "pdVar28 = pdVar9 + iVar13 * 5" identifier = (binary_expression "pdVar9 + iVar13 * 5" identifier + (binary_expression "iVar13 * 5" identifier * number_literal))) ;) (break_statement "break;" break ;) })) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (if_statement "if (iVar13 == -1) break;" if (parenthesized_expression "(iVar13 == -1)" ( (binary_expression "iVar13 == -1" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "dVar64 = *pdVar43 - *pdVar28;" (assignment_expression "dVar64 = *pdVar43 - *pdVar28" identifier = (binary_expression "*pdVar43 - *pdVar28" (pointer_expression "*pdVar43" * identifier) - (pointer_expression "*pdVar28" * identifier))) ;) (expression_statement "dVar54 = pdVar43[1] - pdVar28[1];" (assignment_expression "dVar54 = pdVar43[1] - pdVar28[1]" identifier = (binary_expression "pdVar43[1] - pdVar28[1]" (subscript_expression "pdVar43[1]" identifier [ number_literal ]) - (subscript_expression "pdVar28[1]" identifier [ number_literal ]))) ;) (expression_statement "pdVar16 = pdVar28 + -5;" (assignment_expression "pdVar16 = pdVar28 + -5" identifier = (binary_expression "pdVar28 + -5" identifier + number_literal)) ;) }) while (parenthesized_expression "(ABS(dVar64) < dVar75)" ( (binary_expression "ABS(dVar64) < dVar75" (call_expression "ABS(dVar64)" identifier (argument_list "(dVar64)" ( identifier ))) < identifier) )) ;) })) })) (expression_statement "dVar75 = (double)(**(code **)(puVar47 + 0x304a08))(dVar64,dVar54);" (assignment_expression "dVar75 = (double)(**(code **)(puVar47 + 0x304a08))(dVar64,dVar54)" identifier = (cast_expression "(double)(**(code **)(puVar47 + 0x304a08))(dVar64,dVar54)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar47 + 0x304a08))(dVar64,dVar54)" (parenthesized_expression "(**(code **)(puVar47 + 0x304a08))" ( (pointer_expression "**(code **)(puVar47 + 0x304a08)" * (pointer_expression "*(code **)(puVar47 + 0x304a08)" * (cast_expression "(code **)(puVar47 + 0x304a08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x304a08)" ( (binary_expression "puVar47 + 0x304a08" identifier + number_literal) ))))) )) (argument_list "(dVar64,dVar54)" ( identifier , identifier ))))) ;) (expression_statement "dVar61 = pdVar28[1];" (assignment_expression "dVar61 = pdVar28[1]" identifier = (subscript_expression "pdVar28[1]" identifier [ number_literal ])) ;) (expression_statement "*pdVar43 = *pdVar28 + (dVar64 * (dVar53 + dVar75)) / dVar75;" (assignment_expression "*pdVar43 = *pdVar28 + (dVar64 * (dVar53 + dVar75)) / dVar75" (pointer_expression "*pdVar43" * identifier) = (binary_expression "*pdVar28 + (dVar64 * (dVar53 + dVar75)) / dVar75" (pointer_expression "*pdVar28" * identifier) + (binary_expression "(dVar64 * (dVar53 + dVar75)) / dVar75" (parenthesized_expression "(dVar64 * (dVar53 + dVar75))" ( (binary_expression "dVar64 * (dVar53 + dVar75)" identifier * (parenthesized_expression "(dVar53 + dVar75)" ( (binary_expression "dVar53 + dVar75" identifier + identifier) ))) )) / identifier))) ;) (expression_statement "pdVar43[1] = dVar61 + (dVar54 * (dVar53 + dVar75)) / dVar75;" (assignment_expression "pdVar43[1] = dVar61 + (dVar54 * (dVar53 + dVar75)) / dVar75" (subscript_expression "pdVar43[1]" identifier [ number_literal ]) = (binary_expression "dVar61 + (dVar54 * (dVar53 + dVar75)) / dVar75" identifier + (binary_expression "(dVar54 * (dVar53 + dVar75)) / dVar75" (parenthesized_expression "(dVar54 * (dVar53 + dVar75))" ( (binary_expression "dVar54 * (dVar53 + dVar75)" identifier * (parenthesized_expression "(dVar53 + dVar75)" ( (binary_expression "dVar53 + dVar75" identifier + identifier) ))) )) / identifier))) ;) (goto_statement "goto LAB_000a5220;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_000a5220:\n          iVar13 = *(int *)(puVar47 + 0x303bd0);\n        }" else (compound_statement "{\nLAB_000a5220:\n          iVar13 = *(int *)(puVar47 + 0x303bd0);\n        }" { (labeled_statement "LAB_000a5220:\n          iVar13 = *(int *)(puVar47 + 0x303bd0);" statement_identifier : (expression_statement "iVar13 = *(int *)(puVar47 + 0x303bd0);" (assignment_expression "iVar13 = *(int *)(puVar47 + 0x303bd0)" identifier = (pointer_expression "*(int *)(puVar47 + 0x303bd0)" * (cast_expression "(int *)(puVar47 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x303bd0)" ( (binary_expression "puVar47 + 0x303bd0" identifier + number_literal) ))))) ;)) }))) (expression_statement "dVar54 = dVar53 * dVar53;" (assignment_expression "dVar54 = dVar53 * dVar53" identifier = (binary_expression "dVar53 * dVar53" identifier * identifier)) ;) (expression_statement "dVar64 = dVar54 / (dVar72 * dVar72 + *(double *)(iVar13 + 0x1438));" (assignment_expression "dVar64 = dVar54 / (dVar72 * dVar72 + *(double *)(iVar13 + 0x1438))" identifier = (binary_expression "dVar54 / (dVar72 * dVar72 + *(double *)(iVar13 + 0x1438))" identifier / (parenthesized_expression "(dVar72 * dVar72 + *(double *)(iVar13 + 0x1438))" ( (binary_expression "dVar72 * dVar72 + *(double *)(iVar13 + 0x1438)" (binary_expression "dVar72 * dVar72" identifier * identifier) + (pointer_expression "*(double *)(iVar13 + 0x1438)" * (cast_expression "(double *)(iVar13 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x1438)" ( (binary_expression "iVar13 + 0x1438" identifier + number_literal) ))))) )))) ;) (expression_statement "dVar75 = SQRT(dVar64);" (assignment_expression "dVar75 = SQRT(dVar64)" identifier = (call_expression "SQRT(dVar64)" identifier (argument_list "(dVar64)" ( identifier )))) ;) (if_statement "if (dVar64 < 0.0) {\n          (**(code **)(puVar47 + 0x304770))();\n        }" if (parenthesized_expression "(dVar64 < 0.0)" ( (binary_expression "dVar64 < 0.0" identifier < number_literal) )) (compound_statement "{\n          (**(code **)(puVar47 + 0x304770))();\n        }" { (expression_statement "(**(code **)(puVar47 + 0x304770))();" (call_expression "(**(code **)(puVar47 + 0x304770))()" (parenthesized_expression "(**(code **)(puVar47 + 0x304770))" ( (pointer_expression "**(code **)(puVar47 + 0x304770)" * (pointer_expression "*(code **)(puVar47 + 0x304770)" * (cast_expression "(code **)(puVar47 + 0x304770)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x304770)" ( (binary_expression "puVar47 + 0x304770" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "dVar72 = dVar72 * dVar75;" (assignment_expression "dVar72 = dVar72 * dVar75" identifier = (binary_expression "dVar72 * dVar75" identifier * identifier)) ;) (expression_statement "pdVar16 = pdVar9 + sVar49 * 5;" (assignment_expression "pdVar16 = pdVar9 + sVar49 * 5" identifier = (binary_expression "pdVar9 + sVar49 * 5" identifier + (binary_expression "sVar49 * 5" identifier * number_literal))) ;) (expression_statement "dVar69 = *pdVar16;" (assignment_expression "dVar69 = *pdVar16" identifier = (pointer_expression "*pdVar16" * identifier)) ;) (expression_statement "dVar73 = pdVar16[1];" (assignment_expression "dVar73 = pdVar16[1]" identifier = (subscript_expression "pdVar16[1]" identifier [ number_literal ])) ;) (expression_statement "dVar68 = dVar72 + pdVar9[1];" (assignment_expression "dVar68 = dVar72 + pdVar9[1]" identifier = (binary_expression "dVar72 + pdVar9[1]" identifier + (subscript_expression "pdVar9[1]" identifier [ number_literal ]))) ;) (expression_statement "dVar66 = pdVar9[1] - dVar72;" (assignment_expression "dVar66 = pdVar9[1] - dVar72" identifier = (binary_expression "pdVar9[1] - dVar72" (subscript_expression "pdVar9[1]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "dVar64 = dVar75 + *pdVar9;" (assignment_expression "dVar64 = dVar75 + *pdVar9" identifier = (binary_expression "dVar75 + *pdVar9" identifier + (pointer_expression "*pdVar9" * identifier))) ;) (expression_statement "dStack_238 = dVar73 - dVar72;" (assignment_expression "dStack_238 = dVar73 - dVar72" identifier = (binary_expression "dVar73 - dVar72" identifier - identifier)) ;) (expression_statement "dStack_240 = dVar69 - dVar75;" (assignment_expression "dStack_240 = dVar69 - dVar75" identifier = (binary_expression "dVar69 - dVar75" identifier - identifier)) ;) (expression_statement "dVar67 = *pdVar9 - dVar75;" (assignment_expression "dVar67 = *pdVar9 - dVar75" identifier = (binary_expression "*pdVar9 - dVar75" (pointer_expression "*pdVar9" * identifier) - identifier)) ;) (expression_statement "dVar62 = dVar67;" (assignment_expression "dVar62 = dVar67" identifier = identifier) ;) (expression_statement "dVar61 = dVar68;" (assignment_expression "dVar61 = dVar68" identifier = identifier) ;) (expression_statement "dStack_250 = dVar75 + dVar69;" (assignment_expression "dStack_250 = dVar75 + dVar69" identifier = (binary_expression "dVar75 + dVar69" identifier + identifier)) ;) (expression_statement "dStack_248 = dVar72 + dVar73;" (assignment_expression "dStack_248 = dVar72 + dVar73" identifier = (binary_expression "dVar72 + dVar73" identifier + identifier)) ;) (if_statement "if (0.0 < dVar75 * dStack_258 - dVar72 * dStack_260) {\n          dVar62 = dVar64;\n          dVar61 = dVar66;\n          dVar64 = dVar67;\n          dVar66 = dVar68;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar75 + dVar69;\n          dStack_238 = dVar72 + dVar73;\n        }" if (parenthesized_expression "(0.0 < dVar75 * dStack_258 - dVar72 * dStack_260)" ( (binary_expression "0.0 < dVar75 * dStack_258 - dVar72 * dStack_260" number_literal < (binary_expression "dVar75 * dStack_258 - dVar72 * dStack_260" (binary_expression "dVar75 * dStack_258" identifier * identifier) - (binary_expression "dVar72 * dStack_260" identifier * identifier))) )) (compound_statement "{\n          dVar62 = dVar64;\n          dVar61 = dVar66;\n          dVar64 = dVar67;\n          dVar66 = dVar68;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar75 + dVar69;\n          dStack_238 = dVar72 + dVar73;\n        }" { (expression_statement "dVar62 = dVar64;" (assignment_expression "dVar62 = dVar64" identifier = identifier) ;) (expression_statement "dVar61 = dVar66;" (assignment_expression "dVar61 = dVar66" identifier = identifier) ;) (expression_statement "dVar64 = dVar67;" (assignment_expression "dVar64 = dVar67" identifier = identifier) ;) (expression_statement "dVar66 = dVar68;" (assignment_expression "dVar66 = dVar68" identifier = identifier) ;) (expression_statement "dStack_250 = dStack_240;" (assignment_expression "dStack_250 = dStack_240" identifier = identifier) ;) (expression_statement "dStack_248 = dStack_238;" (assignment_expression "dStack_248 = dStack_238" identifier = identifier) ;) (expression_statement "dStack_240 = dVar75 + dVar69;" (assignment_expression "dStack_240 = dVar75 + dVar69" identifier = (binary_expression "dVar75 + dVar69" identifier + identifier)) ;) (expression_statement "dStack_238 = dVar72 + dVar73;" (assignment_expression "dStack_238 = dVar72 + dVar73" identifier = (binary_expression "dVar72 + dVar73" identifier + identifier)) ;) })) (expression_statement "sVar35 = sVar49 + 1;" (assignment_expression "sVar35 = sVar49 + 1" identifier = (binary_expression "sVar49 + 1" identifier + number_literal)) ;) (expression_statement "*pdVar12 = dVar62;" (assignment_expression "*pdVar12 = dVar62" (pointer_expression "*pdVar12" * identifier) = identifier) ;) (expression_statement "pdVar12[1] = dVar66;" (assignment_expression "pdVar12[1] = dVar66" (subscript_expression "pdVar12[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*pdVar11 = dVar64;" (assignment_expression "*pdVar11 = dVar64" (pointer_expression "*pdVar11" * identifier) = identifier) ;) (expression_statement "pdVar11[1] = dVar61;" (assignment_expression "pdVar11[1] = dVar61" (subscript_expression "pdVar11[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((int)sVar35 < (int)sVar40) {\n          iVar27 = *(int *)(puVar47 + 0x303bd8);\n          iVar44 = 1;\n          iVar46 = 1;\n          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a78);\n          dVar75 = *(double *)(*(int *)(puVar47 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar10;\n          do {\n            dVar55 = pdVar16[6];\n            dVar58 = pdVar16[5];\n            dVar59 = dVar55 - dVar73;\n            dVar65 = dVar58 - dVar69;\n            dVar60 = dVar58 - dVar69;\n            dVar67 = dStack_238;\n            dVar68 = dStack_240;\n            dVar70 = dStack_248;\n            dVar74 = dStack_250;\n            if (*(double *)(iVar27 + -0x2e38) <=\n                dVar65 * dVar65 + (dVar55 - dVar73) * (dVar55 - dVar73)) {\n              if (ABS(dVar65) < *(double *)(iVar8 + 0x13f8)) {\n                dVar67 = 0.0;\n                dVar68 = dVar54;\n                if (0.0 <= dVar65) {\n                  if (0.0 <= dVar55 - dVar73) goto LAB_000a53e0;\n                }\n                else if (dVar55 - dVar73 < 0.0) {\nLAB_000a53e0:\n                  dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar59) < *(double *)(iVar8 + 0x13f8)) {\n                dVar65 = 0.0;\n                dVar68 = dVar54 / dVar75;\n                if (0.0 <= dVar55 - dVar73) {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (dVar58 - dVar69 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (0.0 <= dVar58 - dVar69) {\nLAB_000a5880:\n                    dVar67 = *(double *)(iVar30 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar67 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar65 = (dVar55 - dVar73) / (dVar58 - dVar69);\n                dVar67 = dVar72 / dVar65;\n                dVar68 = dVar54 / (dVar67 * dVar67 + *(double *)(iVar13 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar28 = pdVar9 + sVar49 * 5;\n              dVar70 = SQRT(dVar68);\n              if (dVar68 < 0.0) {\n                (**(code **)(puVar47 + 0x304770))();\n                dVar69 = *pdVar28;\n                dVar73 = pdVar28[1];\n                dVar58 = pdVar16[5];\n                dVar55 = pdVar16[6];\n              }\n              dVar67 = dVar67 * dVar70;\n              dStack_2a8 = dVar58 - dVar70;\n              dStack_2a0 = dVar55 - dVar67;\n              dStack_278 = dVar69 - dVar70;\n              dStack_270 = dVar73 - dVar67;\n              dStack_2b8 = dVar70 + dVar58;\n              dStack_2b0 = dVar67 + dVar55;\n              dStack_288 = dVar70 + dVar69;\n              dStack_280 = dVar67 + dVar73;\n              if (0.0 < dVar59 * dVar70 - dVar60 * dVar67) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar70 + dVar58;\n                dStack_2a0 = dVar67 + dVar55;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar70 + dVar69;\n                dStack_270 = dVar67 + dVar73;\n              }\n              dVar67 = dVar63 - dVar65;\n              dVar69 = dStack_250;\n              dVar73 = dStack_248;\n              dVar55 = dStack_238;\n              dVar58 = dStack_240;\n              if (*(double *)(iVar8 + 0x13f8) <= ABS(dVar67)) {\n                dVar69 = (((dVar64 * dVar63 - dVar61) - dVar65 * dStack_2b8) + dStack_2b0) / dVar67;\n                dVar58 = (((dVar63 * dVar62 - dVar66) - dVar65 * dStack_2a8) + dStack_2a0) / dVar67;\n                dVar73 = (dVar69 - dVar64) * dVar63 + dVar61;\n                dVar55 = (dVar58 - dVar62) * dVar63 + dVar66;\n              }\n              if ((int)uStack_22c <= iVar46 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar11 = (double *)\n                            (**(code **)(puVar47 + 0x304710))(pdVar11,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                }\n              }\n              if (iVar44 + 0x618 < (int)uVar10) {\n                if (pdVar11 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a5710:\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar10) {\n                  pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  if (pdVar11 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar12 != (double *)0x0) goto LAB_000a5700;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar48)(pdVar9);\n                  uVar37 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar12 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                uVar10 = uVar10 + 0x618;\n                if (pdVar11 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar12 == (double *)0x0) {\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  goto LAB_000a5710;\n                }\n              }\n              LVar14 = draw_info->linejoin;\n              dVar62 = dStack_278;\n              dVar61 = dStack_280;\n              dVar64 = dStack_288;\n              dVar66 = dStack_270;\n              sVar49 = sVar35;\n              dVar63 = dVar65;\n              if (dVar60 * dStack_258 - dVar59 * dStack_260 <= 0.0) {\n                if (LVar14 != RoundJoin) {\n                  if (LVar14 == BevelJoin) {\n                    pdVar28 = pdVar11 + iVar46 * 2;\n                    pdVar12[iVar44 * 2] = dStack_240;\n                    (pdVar12 + iVar44 * 2)[1] = dStack_238;\n                    pdVar12[iVar44 * 2 + 2] = dStack_278;\n                    (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if (dVar57 < (dVar58 - dVar69) * (dVar58 - dVar69) +\n                                   (dVar55 - dVar73) * (dVar55 - dVar73)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar44 = iVar44 + 1;\n                      iVar46 = iVar46 + 1;\n                      *pdVar43 = dVar58;\n                      pdVar43[1] = dVar55;\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar30 = iVar46 + 1;\n                pdVar43 = pdVar11 + iVar46 * 2;\n                if ((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57) {\n                  *pdVar43 = dVar69;\n                  pdVar43[1] = dVar73;\n                }\n                else {\n                  iVar30 = iVar46 + 2;\n                  *pdVar43 = dStack_250;\n                  pdVar43[1] = dStack_248;\n                  pdVar11[iVar46 * 2 + 2] = dStack_288;\n                  (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                }\n                dVar69 = *pdVar28;\n                dVar68 = pdVar28[1];\n                dVar63 = dVar68;\n                dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_238 - dVar68,dStack_240 - dVar69);\n                dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_270 - dVar63,dStack_278 - dVar69);\n                if (dVar63 < dVar67) {\n                  dVar63 = dVar63 + *(double *)(iVar26 + 0x34a0);\n                }\n                dVar63 = dVar63 - dVar67;\n                dVar73 = *(double *)(iVar13 + 0x1438) / dVar53;\n                dVar70 = SQRT(dVar73);\n                if (dVar73 < 0.0) {\n                  (**(code **)(puVar47 + 0x304770))();\n                }\n                dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar63 / (dVar70 + dVar70));\n                dVar70 = *(double *)(iVar22 + 0x1410);\n                if (dVar73 < dVar70) {\n                  uVar42 = (uint)dVar73;\n                }\n                else {\n                  uVar42 = (int)(dVar73 - dVar70) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar30 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar46 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar11,iVar46,0x10);\n                  }\n                  else {\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  }\n                }\n                if (uVar42 + 0x618 < 0x4000001) {\n                  if ((int)uVar10 <= (int)(iVar44 + 0x618 + uVar42)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uVar10 < uVar42 + 0x618) goto LAB_000a67d4;\n                    iVar46 = uVar42 + uVar10;\n                    uVar10 = iVar46 + 0x618;\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,iVar46 + 0xc30,0x10);\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar11 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a6d2c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar12 = (double *)(*pcVar48)(pdVar12);\nLAB_000a64c4:\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a6884;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar28 = pdVar12 + iVar44 * 2;\n                *pdVar28 = dStack_240;\n                pdVar28[1] = dStack_238;\n                if (1 < (int)uVar42) {\n                  uVar71 = *(undefined8 *)(iVar26 + 0x34a0);\n                  uVar41 = 1;\n                  do {\n                    uVar45 = uVar41 + 1;\n                    dVar70 = ((double)(int)uVar41 * dVar63) / (double)(int)uVar42 + dVar67;\n                    uVar56 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar56);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar69;\n                    uVar56 = (*pcVar48)(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar56);\n                    pdVar28[3] = dVar53 * dVar73 + dVar68;\n                    uVar41 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar42);\n                }\n                *pdVar12 = dStack_278;\n                pdVar12[1] = dStack_270;\n                dStack_258 = dVar59;\n                dStack_260 = dVar60;\n                dVar67 = dStack_2a0;\n                dVar68 = dStack_2a8;\n                dVar70 = dStack_2b0;\n                dVar74 = dStack_2b8;\n                iVar44 = 1;\n                iVar46 = iVar30;\n                dVar63 = dVar65;\n              }\n              else {\n                if (LVar14 != RoundJoin) {\n                  if (LVar14 == BevelJoin) {\n                    iVar30 = iVar46 * 2;\n                    iVar3 = iVar46 * 2;\n                    iVar46 = iVar46 + 2;\n                    pdVar11[iVar30] = dStack_250;\n                    (pdVar11 + iVar30)[1] = dStack_248;\n                    pdVar28 = pdVar12 + iVar44 * 2;\n                    pdVar11[iVar3 + 2] = dStack_288;\n                    (pdVar11 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar58;\n                      pdVar28[1] = dVar55;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_240;\n                      pdVar28[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                          (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar43 = dStack_240;\n                      pdVar43[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar30 = iVar44 + 1;\n                pdVar43 = pdVar12 + iVar44 * 2;\n                if ((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57) {\n                  *pdVar43 = dVar58;\n                  pdVar43[1] = dVar55;\n                }\n                else {\n                  iVar30 = iVar44 + 2;\n                  *pdVar43 = dStack_240;\n                  pdVar43[1] = dStack_238;\n                  pdVar12[iVar44 * 2 + 2] = dStack_278;\n                  (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                }\n                dVar68 = *pdVar28;\n                dVar69 = pdVar28[1];\n                dVar63 = dVar68;\n                dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_248 - dVar69,dStack_250 - dVar68);\n                dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_280 - dVar69,dStack_288 - dVar63);\n                if (dVar67 < dVar63) {\n                  dVar67 = dVar67 + *(double *)(iVar26 + 0x34a0);\n                }\n                dVar73 = dVar67 - dVar63;\n                dVar70 = *(double *)(iVar13 + 0x1438) / dVar53;\n                dVar74 = SQRT(dVar70);\n                if (dVar70 < 0.0) {\n                  (**(code **)(puVar47 + 0x304770))();\n                }\n                dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar73 / (dVar74 + dVar74));\n                if (dVar73 < dVar51) {\n                  uVar41 = (uint)dVar73;\n                  uVar42 = uVar41 + 0x618;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                  if (uVar42 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar11 = (double *)(*pcVar48)(pdVar11);\n                }\n                else {\n                  uVar41 = (int)(dVar73 - dVar51) | 0x80000000;\n                  uVar42 = uVar41 + 0x618;\n                  if (0x4000000 < uVar42) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar46 + 0x618 + uVar41)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uStack_22c < uVar42) goto LAB_000a66a4;\n                    iVar44 = uStack_22c + uVar41;\n                    uStack_22c = iVar44 + 0x618;\n                    pdVar11 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar11,iVar44 + 0xc30,0x10);\n                  }\n                }\n                if (iVar30 + 0x618 < (int)uVar10) {\n                  if (pdVar11 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a665c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar10 < 0xfffff9e8) {\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                    uVar10 = uVar10 + 0x618;\n                  }\n                  else {\n                    pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  }\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a664c;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar28 = pdVar11 + iVar46 * 2;\n                *pdVar28 = dStack_250;\n                pdVar28[1] = dStack_248;\n                if (1 < (int)uVar41) {\n                  dVar63 = dVar63 - dVar67;\n                  uVar42 = 1;\n                  do {\n                    uVar45 = uVar42 + 1;\n                    dVar70 = ((double)(int)uVar42 * dVar63) / (double)(int)uVar41 + dVar67;\n                    uVar71 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar71);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar68;\n                    uVar71 = (*pcVar48)(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar71);\n                    pdVar28[3] = dVar53 * dVar73 + dVar69;\n                    uVar42 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar41);\n                }\n                *pdVar11 = dStack_288;\n                pdVar11[1] = dStack_280;\n                dStack_258 = dVar59;\n                dStack_260 = dVar60;\n                dVar67 = dStack_2a0;\n                dVar68 = dStack_2a8;\n                dVar70 = dStack_2b0;\n                dVar74 = dStack_2b8;\n                iVar44 = iVar30;\n                iVar46 = 1;\n                dVar63 = dVar65;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar74;\n            dStack_248 = dVar70;\n            dStack_240 = dVar68;\n            dStack_238 = dVar67;\n            if (sVar35 + 1 == sVar40) goto LAB_000a5a58;\n            pdVar16 = pdVar16 + 5;\n            sVar35 = sVar35 + 1;\n            dVar69 = pdVar9[sVar49 * 5];\n            dVar73 = (pdVar9 + sVar49 * 5)[1];\n          } while( true );\n        }" if (parenthesized_expression "((int)sVar35 < (int)sVar40)" ( (binary_expression "(int)sVar35 < (int)sVar40" (cast_expression "(int)sVar35" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)sVar40" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          iVar27 = *(int *)(puVar47 + 0x303bd8);\n          iVar44 = 1;\n          iVar46 = 1;\n          dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a78);\n          dVar75 = *(double *)(*(int *)(puVar47 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar10;\n          do {\n            dVar55 = pdVar16[6];\n            dVar58 = pdVar16[5];\n            dVar59 = dVar55 - dVar73;\n            dVar65 = dVar58 - dVar69;\n            dVar60 = dVar58 - dVar69;\n            dVar67 = dStack_238;\n            dVar68 = dStack_240;\n            dVar70 = dStack_248;\n            dVar74 = dStack_250;\n            if (*(double *)(iVar27 + -0x2e38) <=\n                dVar65 * dVar65 + (dVar55 - dVar73) * (dVar55 - dVar73)) {\n              if (ABS(dVar65) < *(double *)(iVar8 + 0x13f8)) {\n                dVar67 = 0.0;\n                dVar68 = dVar54;\n                if (0.0 <= dVar65) {\n                  if (0.0 <= dVar55 - dVar73) goto LAB_000a53e0;\n                }\n                else if (dVar55 - dVar73 < 0.0) {\nLAB_000a53e0:\n                  dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar59) < *(double *)(iVar8 + 0x13f8)) {\n                dVar65 = 0.0;\n                dVar68 = dVar54 / dVar75;\n                if (0.0 <= dVar55 - dVar73) {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (dVar58 - dVar69 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (0.0 <= dVar58 - dVar69) {\nLAB_000a5880:\n                    dVar67 = *(double *)(iVar30 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar67 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar65 = (dVar55 - dVar73) / (dVar58 - dVar69);\n                dVar67 = dVar72 / dVar65;\n                dVar68 = dVar54 / (dVar67 * dVar67 + *(double *)(iVar13 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar28 = pdVar9 + sVar49 * 5;\n              dVar70 = SQRT(dVar68);\n              if (dVar68 < 0.0) {\n                (**(code **)(puVar47 + 0x304770))();\n                dVar69 = *pdVar28;\n                dVar73 = pdVar28[1];\n                dVar58 = pdVar16[5];\n                dVar55 = pdVar16[6];\n              }\n              dVar67 = dVar67 * dVar70;\n              dStack_2a8 = dVar58 - dVar70;\n              dStack_2a0 = dVar55 - dVar67;\n              dStack_278 = dVar69 - dVar70;\n              dStack_270 = dVar73 - dVar67;\n              dStack_2b8 = dVar70 + dVar58;\n              dStack_2b0 = dVar67 + dVar55;\n              dStack_288 = dVar70 + dVar69;\n              dStack_280 = dVar67 + dVar73;\n              if (0.0 < dVar59 * dVar70 - dVar60 * dVar67) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar70 + dVar58;\n                dStack_2a0 = dVar67 + dVar55;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar70 + dVar69;\n                dStack_270 = dVar67 + dVar73;\n              }\n              dVar67 = dVar63 - dVar65;\n              dVar69 = dStack_250;\n              dVar73 = dStack_248;\n              dVar55 = dStack_238;\n              dVar58 = dStack_240;\n              if (*(double *)(iVar8 + 0x13f8) <= ABS(dVar67)) {\n                dVar69 = (((dVar64 * dVar63 - dVar61) - dVar65 * dStack_2b8) + dStack_2b0) / dVar67;\n                dVar58 = (((dVar63 * dVar62 - dVar66) - dVar65 * dStack_2a8) + dStack_2a0) / dVar67;\n                dVar73 = (dVar69 - dVar64) * dVar63 + dVar61;\n                dVar55 = (dVar58 - dVar62) * dVar63 + dVar66;\n              }\n              if ((int)uStack_22c <= iVar46 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar11 = (double *)\n                            (**(code **)(puVar47 + 0x304710))(pdVar11,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                }\n              }\n              if (iVar44 + 0x618 < (int)uVar10) {\n                if (pdVar11 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a5710:\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar10) {\n                  pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  if (pdVar11 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar12 != (double *)0x0) goto LAB_000a5700;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar48)(pdVar9);\n                  uVar37 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar12 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                uVar10 = uVar10 + 0x618;\n                if (pdVar11 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar12 == (double *)0x0) {\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  goto LAB_000a5710;\n                }\n              }\n              LVar14 = draw_info->linejoin;\n              dVar62 = dStack_278;\n              dVar61 = dStack_280;\n              dVar64 = dStack_288;\n              dVar66 = dStack_270;\n              sVar49 = sVar35;\n              dVar63 = dVar65;\n              if (dVar60 * dStack_258 - dVar59 * dStack_260 <= 0.0) {\n                if (LVar14 != RoundJoin) {\n                  if (LVar14 == BevelJoin) {\n                    pdVar28 = pdVar11 + iVar46 * 2;\n                    pdVar12[iVar44 * 2] = dStack_240;\n                    (pdVar12 + iVar44 * 2)[1] = dStack_238;\n                    pdVar12[iVar44 * 2 + 2] = dStack_278;\n                    (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if (dVar57 < (dVar58 - dVar69) * (dVar58 - dVar69) +\n                                   (dVar55 - dVar73) * (dVar55 - dVar73)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar44 = iVar44 + 1;\n                      iVar46 = iVar46 + 1;\n                      *pdVar43 = dVar58;\n                      pdVar43[1] = dVar55;\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar30 = iVar46 + 1;\n                pdVar43 = pdVar11 + iVar46 * 2;\n                if ((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57) {\n                  *pdVar43 = dVar69;\n                  pdVar43[1] = dVar73;\n                }\n                else {\n                  iVar30 = iVar46 + 2;\n                  *pdVar43 = dStack_250;\n                  pdVar43[1] = dStack_248;\n                  pdVar11[iVar46 * 2 + 2] = dStack_288;\n                  (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                }\n                dVar69 = *pdVar28;\n                dVar68 = pdVar28[1];\n                dVar63 = dVar68;\n                dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_238 - dVar68,dStack_240 - dVar69);\n                dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_270 - dVar63,dStack_278 - dVar69);\n                if (dVar63 < dVar67) {\n                  dVar63 = dVar63 + *(double *)(iVar26 + 0x34a0);\n                }\n                dVar63 = dVar63 - dVar67;\n                dVar73 = *(double *)(iVar13 + 0x1438) / dVar53;\n                dVar70 = SQRT(dVar73);\n                if (dVar73 < 0.0) {\n                  (**(code **)(puVar47 + 0x304770))();\n                }\n                dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar63 / (dVar70 + dVar70));\n                dVar70 = *(double *)(iVar22 + 0x1410);\n                if (dVar73 < dVar70) {\n                  uVar42 = (uint)dVar73;\n                }\n                else {\n                  uVar42 = (int)(dVar73 - dVar70) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar30 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar46 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar11,iVar46,0x10);\n                  }\n                  else {\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  }\n                }\n                if (uVar42 + 0x618 < 0x4000001) {\n                  if ((int)uVar10 <= (int)(iVar44 + 0x618 + uVar42)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uVar10 < uVar42 + 0x618) goto LAB_000a67d4;\n                    iVar46 = uVar42 + uVar10;\n                    uVar10 = iVar46 + 0x618;\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,iVar46 + 0xc30,0x10);\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar11 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a6d2c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar12 = (double *)(*pcVar48)(pdVar12);\nLAB_000a64c4:\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a6884;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar28 = pdVar12 + iVar44 * 2;\n                *pdVar28 = dStack_240;\n                pdVar28[1] = dStack_238;\n                if (1 < (int)uVar42) {\n                  uVar71 = *(undefined8 *)(iVar26 + 0x34a0);\n                  uVar41 = 1;\n                  do {\n                    uVar45 = uVar41 + 1;\n                    dVar70 = ((double)(int)uVar41 * dVar63) / (double)(int)uVar42 + dVar67;\n                    uVar56 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar56);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar69;\n                    uVar56 = (*pcVar48)(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar56);\n                    pdVar28[3] = dVar53 * dVar73 + dVar68;\n                    uVar41 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar42);\n                }\n                *pdVar12 = dStack_278;\n                pdVar12[1] = dStack_270;\n                dStack_258 = dVar59;\n                dStack_260 = dVar60;\n                dVar67 = dStack_2a0;\n                dVar68 = dStack_2a8;\n                dVar70 = dStack_2b0;\n                dVar74 = dStack_2b8;\n                iVar44 = 1;\n                iVar46 = iVar30;\n                dVar63 = dVar65;\n              }\n              else {\n                if (LVar14 != RoundJoin) {\n                  if (LVar14 == BevelJoin) {\n                    iVar30 = iVar46 * 2;\n                    iVar3 = iVar46 * 2;\n                    iVar46 = iVar46 + 2;\n                    pdVar11[iVar30] = dStack_250;\n                    (pdVar11 + iVar30)[1] = dStack_248;\n                    pdVar28 = pdVar12 + iVar44 * 2;\n                    pdVar11[iVar3 + 2] = dStack_288;\n                    (pdVar11 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar58;\n                      pdVar28[1] = dVar55;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_240;\n                      pdVar28[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                          (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar43 = dStack_240;\n                      pdVar43[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar30 = iVar44 + 1;\n                pdVar43 = pdVar12 + iVar44 * 2;\n                if ((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57) {\n                  *pdVar43 = dVar58;\n                  pdVar43[1] = dVar55;\n                }\n                else {\n                  iVar30 = iVar44 + 2;\n                  *pdVar43 = dStack_240;\n                  pdVar43[1] = dStack_238;\n                  pdVar12[iVar44 * 2 + 2] = dStack_278;\n                  (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                }\n                dVar68 = *pdVar28;\n                dVar69 = pdVar28[1];\n                dVar63 = dVar68;\n                dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_248 - dVar69,dStack_250 - dVar68);\n                dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_280 - dVar69,dStack_288 - dVar63);\n                if (dVar67 < dVar63) {\n                  dVar67 = dVar67 + *(double *)(iVar26 + 0x34a0);\n                }\n                dVar73 = dVar67 - dVar63;\n                dVar70 = *(double *)(iVar13 + 0x1438) / dVar53;\n                dVar74 = SQRT(dVar70);\n                if (dVar70 < 0.0) {\n                  (**(code **)(puVar47 + 0x304770))();\n                }\n                dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar73 / (dVar74 + dVar74));\n                if (dVar73 < dVar51) {\n                  uVar41 = (uint)dVar73;\n                  uVar42 = uVar41 + 0x618;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                  if (uVar42 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar11 = (double *)(*pcVar48)(pdVar11);\n                }\n                else {\n                  uVar41 = (int)(dVar73 - dVar51) | 0x80000000;\n                  uVar42 = uVar41 + 0x618;\n                  if (0x4000000 < uVar42) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar46 + 0x618 + uVar41)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uStack_22c < uVar42) goto LAB_000a66a4;\n                    iVar44 = uStack_22c + uVar41;\n                    uStack_22c = iVar44 + 0x618;\n                    pdVar11 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar11,iVar44 + 0xc30,0x10);\n                  }\n                }\n                if (iVar30 + 0x618 < (int)uVar10) {\n                  if (pdVar11 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a665c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar10 < 0xfffff9e8) {\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                    uVar10 = uVar10 + 0x618;\n                  }\n                  else {\n                    pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  }\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a664c;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar28 = pdVar11 + iVar46 * 2;\n                *pdVar28 = dStack_250;\n                pdVar28[1] = dStack_248;\n                if (1 < (int)uVar41) {\n                  dVar63 = dVar63 - dVar67;\n                  uVar42 = 1;\n                  do {\n                    uVar45 = uVar42 + 1;\n                    dVar70 = ((double)(int)uVar42 * dVar63) / (double)(int)uVar41 + dVar67;\n                    uVar71 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar71);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar68;\n                    uVar71 = (*pcVar48)(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar71);\n                    pdVar28[3] = dVar53 * dVar73 + dVar69;\n                    uVar42 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar41);\n                }\n                *pdVar11 = dStack_288;\n                pdVar11[1] = dStack_280;\n                dStack_258 = dVar59;\n                dStack_260 = dVar60;\n                dVar67 = dStack_2a0;\n                dVar68 = dStack_2a8;\n                dVar70 = dStack_2b0;\n                dVar74 = dStack_2b8;\n                iVar44 = iVar30;\n                iVar46 = 1;\n                dVar63 = dVar65;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar74;\n            dStack_248 = dVar70;\n            dStack_240 = dVar68;\n            dStack_238 = dVar67;\n            if (sVar35 + 1 == sVar40) goto LAB_000a5a58;\n            pdVar16 = pdVar16 + 5;\n            sVar35 = sVar35 + 1;\n            dVar69 = pdVar9[sVar49 * 5];\n            dVar73 = (pdVar9 + sVar49 * 5)[1];\n          } while( true );\n        }" { (expression_statement "iVar27 = *(int *)(puVar47 + 0x303bd8);" (assignment_expression "iVar27 = *(int *)(puVar47 + 0x303bd8)" identifier = (pointer_expression "*(int *)(puVar47 + 0x303bd8)" * (cast_expression "(int *)(puVar47 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x303bd8)" ( (binary_expression "puVar47 + 0x303bd8" identifier + number_literal) ))))) ;) (expression_statement "iVar44 = 1;" (assignment_expression "iVar44 = 1" identifier = number_literal) ;) (expression_statement "iVar46 = 1;" (assignment_expression "iVar46 = 1" identifier = number_literal) ;) (expression_statement "dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a78);" (assignment_expression "dVar72 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a78)" identifier = (pointer_expression "*(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a78)" * (cast_expression "(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar47 + 0x303bd0) + 0x1a78)" ( (binary_expression "*(int *)(puVar47 + 0x303bd0) + 0x1a78" (pointer_expression "*(int *)(puVar47 + 0x303bd0)" * (cast_expression "(int *)(puVar47 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x303bd0)" ( (binary_expression "puVar47 + 0x303bd0" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "dVar75 = *(double *)(*(int *)(puVar47 + 0x303bd8) + 0x47d8);" (assignment_expression "dVar75 = *(double *)(*(int *)(puVar47 + 0x303bd8) + 0x47d8)" identifier = (pointer_expression "*(double *)(*(int *)(puVar47 + 0x303bd8) + 0x47d8)" * (cast_expression "(double *)(*(int *)(puVar47 + 0x303bd8) + 0x47d8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar47 + 0x303bd8) + 0x47d8)" ( (binary_expression "*(int *)(puVar47 + 0x303bd8) + 0x47d8" (pointer_expression "*(int *)(puVar47 + 0x303bd8)" * (cast_expression "(int *)(puVar47 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x303bd8)" ( (binary_expression "puVar47 + 0x303bd8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uStack_22c = uVar10;" (assignment_expression "uStack_22c = uVar10" identifier = identifier) ;) (do_statement "do {\n            dVar55 = pdVar16[6];\n            dVar58 = pdVar16[5];\n            dVar59 = dVar55 - dVar73;\n            dVar65 = dVar58 - dVar69;\n            dVar60 = dVar58 - dVar69;\n            dVar67 = dStack_238;\n            dVar68 = dStack_240;\n            dVar70 = dStack_248;\n            dVar74 = dStack_250;\n            if (*(double *)(iVar27 + -0x2e38) <=\n                dVar65 * dVar65 + (dVar55 - dVar73) * (dVar55 - dVar73)) {\n              if (ABS(dVar65) < *(double *)(iVar8 + 0x13f8)) {\n                dVar67 = 0.0;\n                dVar68 = dVar54;\n                if (0.0 <= dVar65) {\n                  if (0.0 <= dVar55 - dVar73) goto LAB_000a53e0;\n                }\n                else if (dVar55 - dVar73 < 0.0) {\nLAB_000a53e0:\n                  dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar59) < *(double *)(iVar8 + 0x13f8)) {\n                dVar65 = 0.0;\n                dVar68 = dVar54 / dVar75;\n                if (0.0 <= dVar55 - dVar73) {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (dVar58 - dVar69 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (0.0 <= dVar58 - dVar69) {\nLAB_000a5880:\n                    dVar67 = *(double *)(iVar30 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar67 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar65 = (dVar55 - dVar73) / (dVar58 - dVar69);\n                dVar67 = dVar72 / dVar65;\n                dVar68 = dVar54 / (dVar67 * dVar67 + *(double *)(iVar13 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar28 = pdVar9 + sVar49 * 5;\n              dVar70 = SQRT(dVar68);\n              if (dVar68 < 0.0) {\n                (**(code **)(puVar47 + 0x304770))();\n                dVar69 = *pdVar28;\n                dVar73 = pdVar28[1];\n                dVar58 = pdVar16[5];\n                dVar55 = pdVar16[6];\n              }\n              dVar67 = dVar67 * dVar70;\n              dStack_2a8 = dVar58 - dVar70;\n              dStack_2a0 = dVar55 - dVar67;\n              dStack_278 = dVar69 - dVar70;\n              dStack_270 = dVar73 - dVar67;\n              dStack_2b8 = dVar70 + dVar58;\n              dStack_2b0 = dVar67 + dVar55;\n              dStack_288 = dVar70 + dVar69;\n              dStack_280 = dVar67 + dVar73;\n              if (0.0 < dVar59 * dVar70 - dVar60 * dVar67) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar70 + dVar58;\n                dStack_2a0 = dVar67 + dVar55;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar70 + dVar69;\n                dStack_270 = dVar67 + dVar73;\n              }\n              dVar67 = dVar63 - dVar65;\n              dVar69 = dStack_250;\n              dVar73 = dStack_248;\n              dVar55 = dStack_238;\n              dVar58 = dStack_240;\n              if (*(double *)(iVar8 + 0x13f8) <= ABS(dVar67)) {\n                dVar69 = (((dVar64 * dVar63 - dVar61) - dVar65 * dStack_2b8) + dStack_2b0) / dVar67;\n                dVar58 = (((dVar63 * dVar62 - dVar66) - dVar65 * dStack_2a8) + dStack_2a0) / dVar67;\n                dVar73 = (dVar69 - dVar64) * dVar63 + dVar61;\n                dVar55 = (dVar58 - dVar62) * dVar63 + dVar66;\n              }\n              if ((int)uStack_22c <= iVar46 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar11 = (double *)\n                            (**(code **)(puVar47 + 0x304710))(pdVar11,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                }\n              }\n              if (iVar44 + 0x618 < (int)uVar10) {\n                if (pdVar11 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a5710:\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar10) {\n                  pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  if (pdVar11 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar12 != (double *)0x0) goto LAB_000a5700;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar48)(pdVar9);\n                  uVar37 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar12 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                uVar10 = uVar10 + 0x618;\n                if (pdVar11 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar12 == (double *)0x0) {\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  goto LAB_000a5710;\n                }\n              }\n              LVar14 = draw_info->linejoin;\n              dVar62 = dStack_278;\n              dVar61 = dStack_280;\n              dVar64 = dStack_288;\n              dVar66 = dStack_270;\n              sVar49 = sVar35;\n              dVar63 = dVar65;\n              if (dVar60 * dStack_258 - dVar59 * dStack_260 <= 0.0) {\n                if (LVar14 != RoundJoin) {\n                  if (LVar14 == BevelJoin) {\n                    pdVar28 = pdVar11 + iVar46 * 2;\n                    pdVar12[iVar44 * 2] = dStack_240;\n                    (pdVar12 + iVar44 * 2)[1] = dStack_238;\n                    pdVar12[iVar44 * 2 + 2] = dStack_278;\n                    (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if (dVar57 < (dVar58 - dVar69) * (dVar58 - dVar69) +\n                                   (dVar55 - dVar73) * (dVar55 - dVar73)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar44 = iVar44 + 1;\n                      iVar46 = iVar46 + 1;\n                      *pdVar43 = dVar58;\n                      pdVar43[1] = dVar55;\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar30 = iVar46 + 1;\n                pdVar43 = pdVar11 + iVar46 * 2;\n                if ((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57) {\n                  *pdVar43 = dVar69;\n                  pdVar43[1] = dVar73;\n                }\n                else {\n                  iVar30 = iVar46 + 2;\n                  *pdVar43 = dStack_250;\n                  pdVar43[1] = dStack_248;\n                  pdVar11[iVar46 * 2 + 2] = dStack_288;\n                  (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                }\n                dVar69 = *pdVar28;\n                dVar68 = pdVar28[1];\n                dVar63 = dVar68;\n                dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_238 - dVar68,dStack_240 - dVar69);\n                dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_270 - dVar63,dStack_278 - dVar69);\n                if (dVar63 < dVar67) {\n                  dVar63 = dVar63 + *(double *)(iVar26 + 0x34a0);\n                }\n                dVar63 = dVar63 - dVar67;\n                dVar73 = *(double *)(iVar13 + 0x1438) / dVar53;\n                dVar70 = SQRT(dVar73);\n                if (dVar73 < 0.0) {\n                  (**(code **)(puVar47 + 0x304770))();\n                }\n                dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar63 / (dVar70 + dVar70));\n                dVar70 = *(double *)(iVar22 + 0x1410);\n                if (dVar73 < dVar70) {\n                  uVar42 = (uint)dVar73;\n                }\n                else {\n                  uVar42 = (int)(dVar73 - dVar70) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar30 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar46 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar11,iVar46,0x10);\n                  }\n                  else {\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  }\n                }\n                if (uVar42 + 0x618 < 0x4000001) {\n                  if ((int)uVar10 <= (int)(iVar44 + 0x618 + uVar42)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uVar10 < uVar42 + 0x618) goto LAB_000a67d4;\n                    iVar46 = uVar42 + uVar10;\n                    uVar10 = iVar46 + 0x618;\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,iVar46 + 0xc30,0x10);\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar11 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a6d2c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar12 = (double *)(*pcVar48)(pdVar12);\nLAB_000a64c4:\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a6884;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar28 = pdVar12 + iVar44 * 2;\n                *pdVar28 = dStack_240;\n                pdVar28[1] = dStack_238;\n                if (1 < (int)uVar42) {\n                  uVar71 = *(undefined8 *)(iVar26 + 0x34a0);\n                  uVar41 = 1;\n                  do {\n                    uVar45 = uVar41 + 1;\n                    dVar70 = ((double)(int)uVar41 * dVar63) / (double)(int)uVar42 + dVar67;\n                    uVar56 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar56);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar69;\n                    uVar56 = (*pcVar48)(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar56);\n                    pdVar28[3] = dVar53 * dVar73 + dVar68;\n                    uVar41 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar42);\n                }\n                *pdVar12 = dStack_278;\n                pdVar12[1] = dStack_270;\n                dStack_258 = dVar59;\n                dStack_260 = dVar60;\n                dVar67 = dStack_2a0;\n                dVar68 = dStack_2a8;\n                dVar70 = dStack_2b0;\n                dVar74 = dStack_2b8;\n                iVar44 = 1;\n                iVar46 = iVar30;\n                dVar63 = dVar65;\n              }\n              else {\n                if (LVar14 != RoundJoin) {\n                  if (LVar14 == BevelJoin) {\n                    iVar30 = iVar46 * 2;\n                    iVar3 = iVar46 * 2;\n                    iVar46 = iVar46 + 2;\n                    pdVar11[iVar30] = dStack_250;\n                    (pdVar11 + iVar30)[1] = dStack_248;\n                    pdVar28 = pdVar12 + iVar44 * 2;\n                    pdVar11[iVar3 + 2] = dStack_288;\n                    (pdVar11 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar58;\n                      pdVar28[1] = dVar55;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_240;\n                      pdVar28[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                          (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar43 = dStack_240;\n                      pdVar43[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar30 = iVar44 + 1;\n                pdVar43 = pdVar12 + iVar44 * 2;\n                if ((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57) {\n                  *pdVar43 = dVar58;\n                  pdVar43[1] = dVar55;\n                }\n                else {\n                  iVar30 = iVar44 + 2;\n                  *pdVar43 = dStack_240;\n                  pdVar43[1] = dStack_238;\n                  pdVar12[iVar44 * 2 + 2] = dStack_278;\n                  (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                }\n                dVar68 = *pdVar28;\n                dVar69 = pdVar28[1];\n                dVar63 = dVar68;\n                dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_248 - dVar69,dStack_250 - dVar68);\n                dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_280 - dVar69,dStack_288 - dVar63);\n                if (dVar67 < dVar63) {\n                  dVar67 = dVar67 + *(double *)(iVar26 + 0x34a0);\n                }\n                dVar73 = dVar67 - dVar63;\n                dVar70 = *(double *)(iVar13 + 0x1438) / dVar53;\n                dVar74 = SQRT(dVar70);\n                if (dVar70 < 0.0) {\n                  (**(code **)(puVar47 + 0x304770))();\n                }\n                dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar73 / (dVar74 + dVar74));\n                if (dVar73 < dVar51) {\n                  uVar41 = (uint)dVar73;\n                  uVar42 = uVar41 + 0x618;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                  if (uVar42 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar11 = (double *)(*pcVar48)(pdVar11);\n                }\n                else {\n                  uVar41 = (int)(dVar73 - dVar51) | 0x80000000;\n                  uVar42 = uVar41 + 0x618;\n                  if (0x4000000 < uVar42) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar46 + 0x618 + uVar41)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uStack_22c < uVar42) goto LAB_000a66a4;\n                    iVar44 = uStack_22c + uVar41;\n                    uStack_22c = iVar44 + 0x618;\n                    pdVar11 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar11,iVar44 + 0xc30,0x10);\n                  }\n                }\n                if (iVar30 + 0x618 < (int)uVar10) {\n                  if (pdVar11 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a665c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar10 < 0xfffff9e8) {\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                    uVar10 = uVar10 + 0x618;\n                  }\n                  else {\n                    pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  }\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a664c;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar28 = pdVar11 + iVar46 * 2;\n                *pdVar28 = dStack_250;\n                pdVar28[1] = dStack_248;\n                if (1 < (int)uVar41) {\n                  dVar63 = dVar63 - dVar67;\n                  uVar42 = 1;\n                  do {\n                    uVar45 = uVar42 + 1;\n                    dVar70 = ((double)(int)uVar42 * dVar63) / (double)(int)uVar41 + dVar67;\n                    uVar71 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar71);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar68;\n                    uVar71 = (*pcVar48)(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar71);\n                    pdVar28[3] = dVar53 * dVar73 + dVar69;\n                    uVar42 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar41);\n                }\n                *pdVar11 = dStack_288;\n                pdVar11[1] = dStack_280;\n                dStack_258 = dVar59;\n                dStack_260 = dVar60;\n                dVar67 = dStack_2a0;\n                dVar68 = dStack_2a8;\n                dVar70 = dStack_2b0;\n                dVar74 = dStack_2b8;\n                iVar44 = iVar30;\n                iVar46 = 1;\n                dVar63 = dVar65;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar74;\n            dStack_248 = dVar70;\n            dStack_240 = dVar68;\n            dStack_238 = dVar67;\n            if (sVar35 + 1 == sVar40) goto LAB_000a5a58;\n            pdVar16 = pdVar16 + 5;\n            sVar35 = sVar35 + 1;\n            dVar69 = pdVar9[sVar49 * 5];\n            dVar73 = (pdVar9 + sVar49 * 5)[1];\n          } while( true );" do (compound_statement "{\n            dVar55 = pdVar16[6];\n            dVar58 = pdVar16[5];\n            dVar59 = dVar55 - dVar73;\n            dVar65 = dVar58 - dVar69;\n            dVar60 = dVar58 - dVar69;\n            dVar67 = dStack_238;\n            dVar68 = dStack_240;\n            dVar70 = dStack_248;\n            dVar74 = dStack_250;\n            if (*(double *)(iVar27 + -0x2e38) <=\n                dVar65 * dVar65 + (dVar55 - dVar73) * (dVar55 - dVar73)) {\n              if (ABS(dVar65) < *(double *)(iVar8 + 0x13f8)) {\n                dVar67 = 0.0;\n                dVar68 = dVar54;\n                if (0.0 <= dVar65) {\n                  if (0.0 <= dVar55 - dVar73) goto LAB_000a53e0;\n                }\n                else if (dVar55 - dVar73 < 0.0) {\nLAB_000a53e0:\n                  dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar59) < *(double *)(iVar8 + 0x13f8)) {\n                dVar65 = 0.0;\n                dVar68 = dVar54 / dVar75;\n                if (0.0 <= dVar55 - dVar73) {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (dVar58 - dVar69 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (0.0 <= dVar58 - dVar69) {\nLAB_000a5880:\n                    dVar67 = *(double *)(iVar30 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar67 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar65 = (dVar55 - dVar73) / (dVar58 - dVar69);\n                dVar67 = dVar72 / dVar65;\n                dVar68 = dVar54 / (dVar67 * dVar67 + *(double *)(iVar13 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar28 = pdVar9 + sVar49 * 5;\n              dVar70 = SQRT(dVar68);\n              if (dVar68 < 0.0) {\n                (**(code **)(puVar47 + 0x304770))();\n                dVar69 = *pdVar28;\n                dVar73 = pdVar28[1];\n                dVar58 = pdVar16[5];\n                dVar55 = pdVar16[6];\n              }\n              dVar67 = dVar67 * dVar70;\n              dStack_2a8 = dVar58 - dVar70;\n              dStack_2a0 = dVar55 - dVar67;\n              dStack_278 = dVar69 - dVar70;\n              dStack_270 = dVar73 - dVar67;\n              dStack_2b8 = dVar70 + dVar58;\n              dStack_2b0 = dVar67 + dVar55;\n              dStack_288 = dVar70 + dVar69;\n              dStack_280 = dVar67 + dVar73;\n              if (0.0 < dVar59 * dVar70 - dVar60 * dVar67) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar70 + dVar58;\n                dStack_2a0 = dVar67 + dVar55;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar70 + dVar69;\n                dStack_270 = dVar67 + dVar73;\n              }\n              dVar67 = dVar63 - dVar65;\n              dVar69 = dStack_250;\n              dVar73 = dStack_248;\n              dVar55 = dStack_238;\n              dVar58 = dStack_240;\n              if (*(double *)(iVar8 + 0x13f8) <= ABS(dVar67)) {\n                dVar69 = (((dVar64 * dVar63 - dVar61) - dVar65 * dStack_2b8) + dStack_2b0) / dVar67;\n                dVar58 = (((dVar63 * dVar62 - dVar66) - dVar65 * dStack_2a8) + dStack_2a0) / dVar67;\n                dVar73 = (dVar69 - dVar64) * dVar63 + dVar61;\n                dVar55 = (dVar58 - dVar62) * dVar63 + dVar66;\n              }\n              if ((int)uStack_22c <= iVar46 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar11 = (double *)\n                            (**(code **)(puVar47 + 0x304710))(pdVar11,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                }\n              }\n              if (iVar44 + 0x618 < (int)uVar10) {\n                if (pdVar11 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a5710:\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar10) {\n                  pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  if (pdVar11 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar12 != (double *)0x0) goto LAB_000a5700;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar48)(pdVar9);\n                  uVar37 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar12 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                uVar10 = uVar10 + 0x618;\n                if (pdVar11 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar12 == (double *)0x0) {\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  goto LAB_000a5710;\n                }\n              }\n              LVar14 = draw_info->linejoin;\n              dVar62 = dStack_278;\n              dVar61 = dStack_280;\n              dVar64 = dStack_288;\n              dVar66 = dStack_270;\n              sVar49 = sVar35;\n              dVar63 = dVar65;\n              if (dVar60 * dStack_258 - dVar59 * dStack_260 <= 0.0) {\n                if (LVar14 != RoundJoin) {\n                  if (LVar14 == BevelJoin) {\n                    pdVar28 = pdVar11 + iVar46 * 2;\n                    pdVar12[iVar44 * 2] = dStack_240;\n                    (pdVar12 + iVar44 * 2)[1] = dStack_238;\n                    pdVar12[iVar44 * 2 + 2] = dStack_278;\n                    (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if (dVar57 < (dVar58 - dVar69) * (dVar58 - dVar69) +\n                                   (dVar55 - dVar73) * (dVar55 - dVar73)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar44 = iVar44 + 1;\n                      iVar46 = iVar46 + 1;\n                      *pdVar43 = dVar58;\n                      pdVar43[1] = dVar55;\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar30 = iVar46 + 1;\n                pdVar43 = pdVar11 + iVar46 * 2;\n                if ((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57) {\n                  *pdVar43 = dVar69;\n                  pdVar43[1] = dVar73;\n                }\n                else {\n                  iVar30 = iVar46 + 2;\n                  *pdVar43 = dStack_250;\n                  pdVar43[1] = dStack_248;\n                  pdVar11[iVar46 * 2 + 2] = dStack_288;\n                  (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                }\n                dVar69 = *pdVar28;\n                dVar68 = pdVar28[1];\n                dVar63 = dVar68;\n                dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_238 - dVar68,dStack_240 - dVar69);\n                dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_270 - dVar63,dStack_278 - dVar69);\n                if (dVar63 < dVar67) {\n                  dVar63 = dVar63 + *(double *)(iVar26 + 0x34a0);\n                }\n                dVar63 = dVar63 - dVar67;\n                dVar73 = *(double *)(iVar13 + 0x1438) / dVar53;\n                dVar70 = SQRT(dVar73);\n                if (dVar73 < 0.0) {\n                  (**(code **)(puVar47 + 0x304770))();\n                }\n                dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar63 / (dVar70 + dVar70));\n                dVar70 = *(double *)(iVar22 + 0x1410);\n                if (dVar73 < dVar70) {\n                  uVar42 = (uint)dVar73;\n                }\n                else {\n                  uVar42 = (int)(dVar73 - dVar70) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar30 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar46 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar11,iVar46,0x10);\n                  }\n                  else {\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  }\n                }\n                if (uVar42 + 0x618 < 0x4000001) {\n                  if ((int)uVar10 <= (int)(iVar44 + 0x618 + uVar42)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uVar10 < uVar42 + 0x618) goto LAB_000a67d4;\n                    iVar46 = uVar42 + uVar10;\n                    uVar10 = iVar46 + 0x618;\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,iVar46 + 0xc30,0x10);\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar11 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a6d2c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar12 = (double *)(*pcVar48)(pdVar12);\nLAB_000a64c4:\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a6884;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar28 = pdVar12 + iVar44 * 2;\n                *pdVar28 = dStack_240;\n                pdVar28[1] = dStack_238;\n                if (1 < (int)uVar42) {\n                  uVar71 = *(undefined8 *)(iVar26 + 0x34a0);\n                  uVar41 = 1;\n                  do {\n                    uVar45 = uVar41 + 1;\n                    dVar70 = ((double)(int)uVar41 * dVar63) / (double)(int)uVar42 + dVar67;\n                    uVar56 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar56);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar69;\n                    uVar56 = (*pcVar48)(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar56);\n                    pdVar28[3] = dVar53 * dVar73 + dVar68;\n                    uVar41 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar42);\n                }\n                *pdVar12 = dStack_278;\n                pdVar12[1] = dStack_270;\n                dStack_258 = dVar59;\n                dStack_260 = dVar60;\n                dVar67 = dStack_2a0;\n                dVar68 = dStack_2a8;\n                dVar70 = dStack_2b0;\n                dVar74 = dStack_2b8;\n                iVar44 = 1;\n                iVar46 = iVar30;\n                dVar63 = dVar65;\n              }\n              else {\n                if (LVar14 != RoundJoin) {\n                  if (LVar14 == BevelJoin) {\n                    iVar30 = iVar46 * 2;\n                    iVar3 = iVar46 * 2;\n                    iVar46 = iVar46 + 2;\n                    pdVar11[iVar30] = dStack_250;\n                    (pdVar11 + iVar30)[1] = dStack_248;\n                    pdVar28 = pdVar12 + iVar44 * 2;\n                    pdVar11[iVar3 + 2] = dStack_288;\n                    (pdVar11 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar58;\n                      pdVar28[1] = dVar55;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_240;\n                      pdVar28[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                          (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar43 = dStack_240;\n                      pdVar43[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar30 = iVar44 + 1;\n                pdVar43 = pdVar12 + iVar44 * 2;\n                if ((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57) {\n                  *pdVar43 = dVar58;\n                  pdVar43[1] = dVar55;\n                }\n                else {\n                  iVar30 = iVar44 + 2;\n                  *pdVar43 = dStack_240;\n                  pdVar43[1] = dStack_238;\n                  pdVar12[iVar44 * 2 + 2] = dStack_278;\n                  (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                }\n                dVar68 = *pdVar28;\n                dVar69 = pdVar28[1];\n                dVar63 = dVar68;\n                dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_248 - dVar69,dStack_250 - dVar68);\n                dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_280 - dVar69,dStack_288 - dVar63);\n                if (dVar67 < dVar63) {\n                  dVar67 = dVar67 + *(double *)(iVar26 + 0x34a0);\n                }\n                dVar73 = dVar67 - dVar63;\n                dVar70 = *(double *)(iVar13 + 0x1438) / dVar53;\n                dVar74 = SQRT(dVar70);\n                if (dVar70 < 0.0) {\n                  (**(code **)(puVar47 + 0x304770))();\n                }\n                dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar73 / (dVar74 + dVar74));\n                if (dVar73 < dVar51) {\n                  uVar41 = (uint)dVar73;\n                  uVar42 = uVar41 + 0x618;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                  if (uVar42 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar11 = (double *)(*pcVar48)(pdVar11);\n                }\n                else {\n                  uVar41 = (int)(dVar73 - dVar51) | 0x80000000;\n                  uVar42 = uVar41 + 0x618;\n                  if (0x4000000 < uVar42) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar46 + 0x618 + uVar41)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uStack_22c < uVar42) goto LAB_000a66a4;\n                    iVar44 = uStack_22c + uVar41;\n                    uStack_22c = iVar44 + 0x618;\n                    pdVar11 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar11,iVar44 + 0xc30,0x10);\n                  }\n                }\n                if (iVar30 + 0x618 < (int)uVar10) {\n                  if (pdVar11 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a665c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar10 < 0xfffff9e8) {\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                    uVar10 = uVar10 + 0x618;\n                  }\n                  else {\n                    pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  }\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a664c;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar28 = pdVar11 + iVar46 * 2;\n                *pdVar28 = dStack_250;\n                pdVar28[1] = dStack_248;\n                if (1 < (int)uVar41) {\n                  dVar63 = dVar63 - dVar67;\n                  uVar42 = 1;\n                  do {\n                    uVar45 = uVar42 + 1;\n                    dVar70 = ((double)(int)uVar42 * dVar63) / (double)(int)uVar41 + dVar67;\n                    uVar71 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar71);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar68;\n                    uVar71 = (*pcVar48)(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar71);\n                    pdVar28[3] = dVar53 * dVar73 + dVar69;\n                    uVar42 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar41);\n                }\n                *pdVar11 = dStack_288;\n                pdVar11[1] = dStack_280;\n                dStack_258 = dVar59;\n                dStack_260 = dVar60;\n                dVar67 = dStack_2a0;\n                dVar68 = dStack_2a8;\n                dVar70 = dStack_2b0;\n                dVar74 = dStack_2b8;\n                iVar44 = iVar30;\n                iVar46 = 1;\n                dVar63 = dVar65;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar74;\n            dStack_248 = dVar70;\n            dStack_240 = dVar68;\n            dStack_238 = dVar67;\n            if (sVar35 + 1 == sVar40) goto LAB_000a5a58;\n            pdVar16 = pdVar16 + 5;\n            sVar35 = sVar35 + 1;\n            dVar69 = pdVar9[sVar49 * 5];\n            dVar73 = (pdVar9 + sVar49 * 5)[1];\n          }" { (expression_statement "dVar55 = pdVar16[6];" (assignment_expression "dVar55 = pdVar16[6]" identifier = (subscript_expression "pdVar16[6]" identifier [ number_literal ])) ;) (expression_statement "dVar58 = pdVar16[5];" (assignment_expression "dVar58 = pdVar16[5]" identifier = (subscript_expression "pdVar16[5]" identifier [ number_literal ])) ;) (expression_statement "dVar59 = dVar55 - dVar73;" (assignment_expression "dVar59 = dVar55 - dVar73" identifier = (binary_expression "dVar55 - dVar73" identifier - identifier)) ;) (expression_statement "dVar65 = dVar58 - dVar69;" (assignment_expression "dVar65 = dVar58 - dVar69" identifier = (binary_expression "dVar58 - dVar69" identifier - identifier)) ;) (expression_statement "dVar60 = dVar58 - dVar69;" (assignment_expression "dVar60 = dVar58 - dVar69" identifier = (binary_expression "dVar58 - dVar69" identifier - identifier)) ;) (expression_statement "dVar67 = dStack_238;" (assignment_expression "dVar67 = dStack_238" identifier = identifier) ;) (expression_statement "dVar68 = dStack_240;" (assignment_expression "dVar68 = dStack_240" identifier = identifier) ;) (expression_statement "dVar70 = dStack_248;" (assignment_expression "dVar70 = dStack_248" identifier = identifier) ;) (expression_statement "dVar74 = dStack_250;" (assignment_expression "dVar74 = dStack_250" identifier = identifier) ;) (if_statement "if (*(double *)(iVar27 + -0x2e38) <=\n                dVar65 * dVar65 + (dVar55 - dVar73) * (dVar55 - dVar73)) {\n              if (ABS(dVar65) < *(double *)(iVar8 + 0x13f8)) {\n                dVar67 = 0.0;\n                dVar68 = dVar54;\n                if (0.0 <= dVar65) {\n                  if (0.0 <= dVar55 - dVar73) goto LAB_000a53e0;\n                }\n                else if (dVar55 - dVar73 < 0.0) {\nLAB_000a53e0:\n                  dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar59) < *(double *)(iVar8 + 0x13f8)) {\n                dVar65 = 0.0;\n                dVar68 = dVar54 / dVar75;\n                if (0.0 <= dVar55 - dVar73) {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (dVar58 - dVar69 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (0.0 <= dVar58 - dVar69) {\nLAB_000a5880:\n                    dVar67 = *(double *)(iVar30 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar67 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar65 = (dVar55 - dVar73) / (dVar58 - dVar69);\n                dVar67 = dVar72 / dVar65;\n                dVar68 = dVar54 / (dVar67 * dVar67 + *(double *)(iVar13 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar28 = pdVar9 + sVar49 * 5;\n              dVar70 = SQRT(dVar68);\n              if (dVar68 < 0.0) {\n                (**(code **)(puVar47 + 0x304770))();\n                dVar69 = *pdVar28;\n                dVar73 = pdVar28[1];\n                dVar58 = pdVar16[5];\n                dVar55 = pdVar16[6];\n              }\n              dVar67 = dVar67 * dVar70;\n              dStack_2a8 = dVar58 - dVar70;\n              dStack_2a0 = dVar55 - dVar67;\n              dStack_278 = dVar69 - dVar70;\n              dStack_270 = dVar73 - dVar67;\n              dStack_2b8 = dVar70 + dVar58;\n              dStack_2b0 = dVar67 + dVar55;\n              dStack_288 = dVar70 + dVar69;\n              dStack_280 = dVar67 + dVar73;\n              if (0.0 < dVar59 * dVar70 - dVar60 * dVar67) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar70 + dVar58;\n                dStack_2a0 = dVar67 + dVar55;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar70 + dVar69;\n                dStack_270 = dVar67 + dVar73;\n              }\n              dVar67 = dVar63 - dVar65;\n              dVar69 = dStack_250;\n              dVar73 = dStack_248;\n              dVar55 = dStack_238;\n              dVar58 = dStack_240;\n              if (*(double *)(iVar8 + 0x13f8) <= ABS(dVar67)) {\n                dVar69 = (((dVar64 * dVar63 - dVar61) - dVar65 * dStack_2b8) + dStack_2b0) / dVar67;\n                dVar58 = (((dVar63 * dVar62 - dVar66) - dVar65 * dStack_2a8) + dStack_2a0) / dVar67;\n                dVar73 = (dVar69 - dVar64) * dVar63 + dVar61;\n                dVar55 = (dVar58 - dVar62) * dVar63 + dVar66;\n              }\n              if ((int)uStack_22c <= iVar46 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar11 = (double *)\n                            (**(code **)(puVar47 + 0x304710))(pdVar11,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                }\n              }\n              if (iVar44 + 0x618 < (int)uVar10) {\n                if (pdVar11 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a5710:\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar10) {\n                  pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  if (pdVar11 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar12 != (double *)0x0) goto LAB_000a5700;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar48)(pdVar9);\n                  uVar37 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar12 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                uVar10 = uVar10 + 0x618;\n                if (pdVar11 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar12 == (double *)0x0) {\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  goto LAB_000a5710;\n                }\n              }\n              LVar14 = draw_info->linejoin;\n              dVar62 = dStack_278;\n              dVar61 = dStack_280;\n              dVar64 = dStack_288;\n              dVar66 = dStack_270;\n              sVar49 = sVar35;\n              dVar63 = dVar65;\n              if (dVar60 * dStack_258 - dVar59 * dStack_260 <= 0.0) {\n                if (LVar14 != RoundJoin) {\n                  if (LVar14 == BevelJoin) {\n                    pdVar28 = pdVar11 + iVar46 * 2;\n                    pdVar12[iVar44 * 2] = dStack_240;\n                    (pdVar12 + iVar44 * 2)[1] = dStack_238;\n                    pdVar12[iVar44 * 2 + 2] = dStack_278;\n                    (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if (dVar57 < (dVar58 - dVar69) * (dVar58 - dVar69) +\n                                   (dVar55 - dVar73) * (dVar55 - dVar73)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar44 = iVar44 + 1;\n                      iVar46 = iVar46 + 1;\n                      *pdVar43 = dVar58;\n                      pdVar43[1] = dVar55;\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar30 = iVar46 + 1;\n                pdVar43 = pdVar11 + iVar46 * 2;\n                if ((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57) {\n                  *pdVar43 = dVar69;\n                  pdVar43[1] = dVar73;\n                }\n                else {\n                  iVar30 = iVar46 + 2;\n                  *pdVar43 = dStack_250;\n                  pdVar43[1] = dStack_248;\n                  pdVar11[iVar46 * 2 + 2] = dStack_288;\n                  (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                }\n                dVar69 = *pdVar28;\n                dVar68 = pdVar28[1];\n                dVar63 = dVar68;\n                dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_238 - dVar68,dStack_240 - dVar69);\n                dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_270 - dVar63,dStack_278 - dVar69);\n                if (dVar63 < dVar67) {\n                  dVar63 = dVar63 + *(double *)(iVar26 + 0x34a0);\n                }\n                dVar63 = dVar63 - dVar67;\n                dVar73 = *(double *)(iVar13 + 0x1438) / dVar53;\n                dVar70 = SQRT(dVar73);\n                if (dVar73 < 0.0) {\n                  (**(code **)(puVar47 + 0x304770))();\n                }\n                dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar63 / (dVar70 + dVar70));\n                dVar70 = *(double *)(iVar22 + 0x1410);\n                if (dVar73 < dVar70) {\n                  uVar42 = (uint)dVar73;\n                }\n                else {\n                  uVar42 = (int)(dVar73 - dVar70) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar30 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar46 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar11,iVar46,0x10);\n                  }\n                  else {\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  }\n                }\n                if (uVar42 + 0x618 < 0x4000001) {\n                  if ((int)uVar10 <= (int)(iVar44 + 0x618 + uVar42)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uVar10 < uVar42 + 0x618) goto LAB_000a67d4;\n                    iVar46 = uVar42 + uVar10;\n                    uVar10 = iVar46 + 0x618;\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,iVar46 + 0xc30,0x10);\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar11 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a6d2c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar12 = (double *)(*pcVar48)(pdVar12);\nLAB_000a64c4:\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a6884;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar28 = pdVar12 + iVar44 * 2;\n                *pdVar28 = dStack_240;\n                pdVar28[1] = dStack_238;\n                if (1 < (int)uVar42) {\n                  uVar71 = *(undefined8 *)(iVar26 + 0x34a0);\n                  uVar41 = 1;\n                  do {\n                    uVar45 = uVar41 + 1;\n                    dVar70 = ((double)(int)uVar41 * dVar63) / (double)(int)uVar42 + dVar67;\n                    uVar56 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar56);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar69;\n                    uVar56 = (*pcVar48)(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar56);\n                    pdVar28[3] = dVar53 * dVar73 + dVar68;\n                    uVar41 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar42);\n                }\n                *pdVar12 = dStack_278;\n                pdVar12[1] = dStack_270;\n                dStack_258 = dVar59;\n                dStack_260 = dVar60;\n                dVar67 = dStack_2a0;\n                dVar68 = dStack_2a8;\n                dVar70 = dStack_2b0;\n                dVar74 = dStack_2b8;\n                iVar44 = 1;\n                iVar46 = iVar30;\n                dVar63 = dVar65;\n              }\n              else {\n                if (LVar14 != RoundJoin) {\n                  if (LVar14 == BevelJoin) {\n                    iVar30 = iVar46 * 2;\n                    iVar3 = iVar46 * 2;\n                    iVar46 = iVar46 + 2;\n                    pdVar11[iVar30] = dStack_250;\n                    (pdVar11 + iVar30)[1] = dStack_248;\n                    pdVar28 = pdVar12 + iVar44 * 2;\n                    pdVar11[iVar3 + 2] = dStack_288;\n                    (pdVar11 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar58;\n                      pdVar28[1] = dVar55;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_240;\n                      pdVar28[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                          (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar43 = dStack_240;\n                      pdVar43[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar30 = iVar44 + 1;\n                pdVar43 = pdVar12 + iVar44 * 2;\n                if ((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57) {\n                  *pdVar43 = dVar58;\n                  pdVar43[1] = dVar55;\n                }\n                else {\n                  iVar30 = iVar44 + 2;\n                  *pdVar43 = dStack_240;\n                  pdVar43[1] = dStack_238;\n                  pdVar12[iVar44 * 2 + 2] = dStack_278;\n                  (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                }\n                dVar68 = *pdVar28;\n                dVar69 = pdVar28[1];\n                dVar63 = dVar68;\n                dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_248 - dVar69,dStack_250 - dVar68);\n                dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_280 - dVar69,dStack_288 - dVar63);\n                if (dVar67 < dVar63) {\n                  dVar67 = dVar67 + *(double *)(iVar26 + 0x34a0);\n                }\n                dVar73 = dVar67 - dVar63;\n                dVar70 = *(double *)(iVar13 + 0x1438) / dVar53;\n                dVar74 = SQRT(dVar70);\n                if (dVar70 < 0.0) {\n                  (**(code **)(puVar47 + 0x304770))();\n                }\n                dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar73 / (dVar74 + dVar74));\n                if (dVar73 < dVar51) {\n                  uVar41 = (uint)dVar73;\n                  uVar42 = uVar41 + 0x618;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                  if (uVar42 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar11 = (double *)(*pcVar48)(pdVar11);\n                }\n                else {\n                  uVar41 = (int)(dVar73 - dVar51) | 0x80000000;\n                  uVar42 = uVar41 + 0x618;\n                  if (0x4000000 < uVar42) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar46 + 0x618 + uVar41)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uStack_22c < uVar42) goto LAB_000a66a4;\n                    iVar44 = uStack_22c + uVar41;\n                    uStack_22c = iVar44 + 0x618;\n                    pdVar11 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar11,iVar44 + 0xc30,0x10);\n                  }\n                }\n                if (iVar30 + 0x618 < (int)uVar10) {\n                  if (pdVar11 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a665c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar10 < 0xfffff9e8) {\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                    uVar10 = uVar10 + 0x618;\n                  }\n                  else {\n                    pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  }\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a664c;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar28 = pdVar11 + iVar46 * 2;\n                *pdVar28 = dStack_250;\n                pdVar28[1] = dStack_248;\n                if (1 < (int)uVar41) {\n                  dVar63 = dVar63 - dVar67;\n                  uVar42 = 1;\n                  do {\n                    uVar45 = uVar42 + 1;\n                    dVar70 = ((double)(int)uVar42 * dVar63) / (double)(int)uVar41 + dVar67;\n                    uVar71 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar71);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar68;\n                    uVar71 = (*pcVar48)(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar71);\n                    pdVar28[3] = dVar53 * dVar73 + dVar69;\n                    uVar42 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar41);\n                }\n                *pdVar11 = dStack_288;\n                pdVar11[1] = dStack_280;\n                dStack_258 = dVar59;\n                dStack_260 = dVar60;\n                dVar67 = dStack_2a0;\n                dVar68 = dStack_2a8;\n                dVar70 = dStack_2b0;\n                dVar74 = dStack_2b8;\n                iVar44 = iVar30;\n                iVar46 = 1;\n                dVar63 = dVar65;\n              }\n            }" if (parenthesized_expression "(*(double *)(iVar27 + -0x2e38) <=\n                dVar65 * dVar65 + (dVar55 - dVar73) * (dVar55 - dVar73))" ( (binary_expression "*(double *)(iVar27 + -0x2e38) <=\n                dVar65 * dVar65 + (dVar55 - dVar73) * (dVar55 - dVar73)" (pointer_expression "*(double *)(iVar27 + -0x2e38)" * (cast_expression "(double *)(iVar27 + -0x2e38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + -0x2e38)" ( (binary_expression "iVar27 + -0x2e38" identifier + number_literal) )))) <= (binary_expression "dVar65 * dVar65 + (dVar55 - dVar73) * (dVar55 - dVar73)" (binary_expression "dVar65 * dVar65" identifier * identifier) + (binary_expression "(dVar55 - dVar73) * (dVar55 - dVar73)" (parenthesized_expression "(dVar55 - dVar73)" ( (binary_expression "dVar55 - dVar73" identifier - identifier) )) * (parenthesized_expression "(dVar55 - dVar73)" ( (binary_expression "dVar55 - dVar73" identifier - identifier) ))))) )) (compound_statement "{\n              if (ABS(dVar65) < *(double *)(iVar8 + 0x13f8)) {\n                dVar67 = 0.0;\n                dVar68 = dVar54;\n                if (0.0 <= dVar65) {\n                  if (0.0 <= dVar55 - dVar73) goto LAB_000a53e0;\n                }\n                else if (dVar55 - dVar73 < 0.0) {\nLAB_000a53e0:\n                  dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar59) < *(double *)(iVar8 + 0x13f8)) {\n                dVar65 = 0.0;\n                dVar68 = dVar54 / dVar75;\n                if (0.0 <= dVar55 - dVar73) {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (dVar58 - dVar69 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (0.0 <= dVar58 - dVar69) {\nLAB_000a5880:\n                    dVar67 = *(double *)(iVar30 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar67 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar65 = (dVar55 - dVar73) / (dVar58 - dVar69);\n                dVar67 = dVar72 / dVar65;\n                dVar68 = dVar54 / (dVar67 * dVar67 + *(double *)(iVar13 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar28 = pdVar9 + sVar49 * 5;\n              dVar70 = SQRT(dVar68);\n              if (dVar68 < 0.0) {\n                (**(code **)(puVar47 + 0x304770))();\n                dVar69 = *pdVar28;\n                dVar73 = pdVar28[1];\n                dVar58 = pdVar16[5];\n                dVar55 = pdVar16[6];\n              }\n              dVar67 = dVar67 * dVar70;\n              dStack_2a8 = dVar58 - dVar70;\n              dStack_2a0 = dVar55 - dVar67;\n              dStack_278 = dVar69 - dVar70;\n              dStack_270 = dVar73 - dVar67;\n              dStack_2b8 = dVar70 + dVar58;\n              dStack_2b0 = dVar67 + dVar55;\n              dStack_288 = dVar70 + dVar69;\n              dStack_280 = dVar67 + dVar73;\n              if (0.0 < dVar59 * dVar70 - dVar60 * dVar67) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar70 + dVar58;\n                dStack_2a0 = dVar67 + dVar55;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar70 + dVar69;\n                dStack_270 = dVar67 + dVar73;\n              }\n              dVar67 = dVar63 - dVar65;\n              dVar69 = dStack_250;\n              dVar73 = dStack_248;\n              dVar55 = dStack_238;\n              dVar58 = dStack_240;\n              if (*(double *)(iVar8 + 0x13f8) <= ABS(dVar67)) {\n                dVar69 = (((dVar64 * dVar63 - dVar61) - dVar65 * dStack_2b8) + dStack_2b0) / dVar67;\n                dVar58 = (((dVar63 * dVar62 - dVar66) - dVar65 * dStack_2a8) + dStack_2a0) / dVar67;\n                dVar73 = (dVar69 - dVar64) * dVar63 + dVar61;\n                dVar55 = (dVar58 - dVar62) * dVar63 + dVar66;\n              }\n              if ((int)uStack_22c <= iVar46 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar11 = (double *)\n                            (**(code **)(puVar47 + 0x304710))(pdVar11,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                }\n              }\n              if (iVar44 + 0x618 < (int)uVar10) {\n                if (pdVar11 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a5710:\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar10) {\n                  pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  if (pdVar11 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar12 != (double *)0x0) goto LAB_000a5700;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar48)(pdVar9);\n                  uVar37 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar12 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                uVar10 = uVar10 + 0x618;\n                if (pdVar11 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar12 == (double *)0x0) {\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  goto LAB_000a5710;\n                }\n              }\n              LVar14 = draw_info->linejoin;\n              dVar62 = dStack_278;\n              dVar61 = dStack_280;\n              dVar64 = dStack_288;\n              dVar66 = dStack_270;\n              sVar49 = sVar35;\n              dVar63 = dVar65;\n              if (dVar60 * dStack_258 - dVar59 * dStack_260 <= 0.0) {\n                if (LVar14 != RoundJoin) {\n                  if (LVar14 == BevelJoin) {\n                    pdVar28 = pdVar11 + iVar46 * 2;\n                    pdVar12[iVar44 * 2] = dStack_240;\n                    (pdVar12 + iVar44 * 2)[1] = dStack_238;\n                    pdVar12[iVar44 * 2 + 2] = dStack_278;\n                    (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if (dVar57 < (dVar58 - dVar69) * (dVar58 - dVar69) +\n                                   (dVar55 - dVar73) * (dVar55 - dVar73)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar44 = iVar44 + 1;\n                      iVar46 = iVar46 + 1;\n                      *pdVar43 = dVar58;\n                      pdVar43[1] = dVar55;\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar30 = iVar46 + 1;\n                pdVar43 = pdVar11 + iVar46 * 2;\n                if ((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57) {\n                  *pdVar43 = dVar69;\n                  pdVar43[1] = dVar73;\n                }\n                else {\n                  iVar30 = iVar46 + 2;\n                  *pdVar43 = dStack_250;\n                  pdVar43[1] = dStack_248;\n                  pdVar11[iVar46 * 2 + 2] = dStack_288;\n                  (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                }\n                dVar69 = *pdVar28;\n                dVar68 = pdVar28[1];\n                dVar63 = dVar68;\n                dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_238 - dVar68,dStack_240 - dVar69);\n                dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_270 - dVar63,dStack_278 - dVar69);\n                if (dVar63 < dVar67) {\n                  dVar63 = dVar63 + *(double *)(iVar26 + 0x34a0);\n                }\n                dVar63 = dVar63 - dVar67;\n                dVar73 = *(double *)(iVar13 + 0x1438) / dVar53;\n                dVar70 = SQRT(dVar73);\n                if (dVar73 < 0.0) {\n                  (**(code **)(puVar47 + 0x304770))();\n                }\n                dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar63 / (dVar70 + dVar70));\n                dVar70 = *(double *)(iVar22 + 0x1410);\n                if (dVar73 < dVar70) {\n                  uVar42 = (uint)dVar73;\n                }\n                else {\n                  uVar42 = (int)(dVar73 - dVar70) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar30 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar46 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar11,iVar46,0x10);\n                  }\n                  else {\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  }\n                }\n                if (uVar42 + 0x618 < 0x4000001) {\n                  if ((int)uVar10 <= (int)(iVar44 + 0x618 + uVar42)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uVar10 < uVar42 + 0x618) goto LAB_000a67d4;\n                    iVar46 = uVar42 + uVar10;\n                    uVar10 = iVar46 + 0x618;\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,iVar46 + 0xc30,0x10);\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar11 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a6d2c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar12 = (double *)(*pcVar48)(pdVar12);\nLAB_000a64c4:\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a6884;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar28 = pdVar12 + iVar44 * 2;\n                *pdVar28 = dStack_240;\n                pdVar28[1] = dStack_238;\n                if (1 < (int)uVar42) {\n                  uVar71 = *(undefined8 *)(iVar26 + 0x34a0);\n                  uVar41 = 1;\n                  do {\n                    uVar45 = uVar41 + 1;\n                    dVar70 = ((double)(int)uVar41 * dVar63) / (double)(int)uVar42 + dVar67;\n                    uVar56 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar56);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar69;\n                    uVar56 = (*pcVar48)(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar56);\n                    pdVar28[3] = dVar53 * dVar73 + dVar68;\n                    uVar41 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar42);\n                }\n                *pdVar12 = dStack_278;\n                pdVar12[1] = dStack_270;\n                dStack_258 = dVar59;\n                dStack_260 = dVar60;\n                dVar67 = dStack_2a0;\n                dVar68 = dStack_2a8;\n                dVar70 = dStack_2b0;\n                dVar74 = dStack_2b8;\n                iVar44 = 1;\n                iVar46 = iVar30;\n                dVar63 = dVar65;\n              }\n              else {\n                if (LVar14 != RoundJoin) {\n                  if (LVar14 == BevelJoin) {\n                    iVar30 = iVar46 * 2;\n                    iVar3 = iVar46 * 2;\n                    iVar46 = iVar46 + 2;\n                    pdVar11[iVar30] = dStack_250;\n                    (pdVar11 + iVar30)[1] = dStack_248;\n                    pdVar28 = pdVar12 + iVar44 * 2;\n                    pdVar11[iVar3 + 2] = dStack_288;\n                    (pdVar11 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar58;\n                      pdVar28[1] = dVar55;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_240;\n                      pdVar28[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                          (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar43 = dStack_240;\n                      pdVar43[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar30 = iVar44 + 1;\n                pdVar43 = pdVar12 + iVar44 * 2;\n                if ((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57) {\n                  *pdVar43 = dVar58;\n                  pdVar43[1] = dVar55;\n                }\n                else {\n                  iVar30 = iVar44 + 2;\n                  *pdVar43 = dStack_240;\n                  pdVar43[1] = dStack_238;\n                  pdVar12[iVar44 * 2 + 2] = dStack_278;\n                  (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                }\n                dVar68 = *pdVar28;\n                dVar69 = pdVar28[1];\n                dVar63 = dVar68;\n                dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_248 - dVar69,dStack_250 - dVar68);\n                dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_280 - dVar69,dStack_288 - dVar63);\n                if (dVar67 < dVar63) {\n                  dVar67 = dVar67 + *(double *)(iVar26 + 0x34a0);\n                }\n                dVar73 = dVar67 - dVar63;\n                dVar70 = *(double *)(iVar13 + 0x1438) / dVar53;\n                dVar74 = SQRT(dVar70);\n                if (dVar70 < 0.0) {\n                  (**(code **)(puVar47 + 0x304770))();\n                }\n                dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar73 / (dVar74 + dVar74));\n                if (dVar73 < dVar51) {\n                  uVar41 = (uint)dVar73;\n                  uVar42 = uVar41 + 0x618;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                  if (uVar42 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar11 = (double *)(*pcVar48)(pdVar11);\n                }\n                else {\n                  uVar41 = (int)(dVar73 - dVar51) | 0x80000000;\n                  uVar42 = uVar41 + 0x618;\n                  if (0x4000000 < uVar42) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar46 + 0x618 + uVar41)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uStack_22c < uVar42) goto LAB_000a66a4;\n                    iVar44 = uStack_22c + uVar41;\n                    uStack_22c = iVar44 + 0x618;\n                    pdVar11 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar11,iVar44 + 0xc30,0x10);\n                  }\n                }\n                if (iVar30 + 0x618 < (int)uVar10) {\n                  if (pdVar11 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a665c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar10 < 0xfffff9e8) {\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                    uVar10 = uVar10 + 0x618;\n                  }\n                  else {\n                    pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  }\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a664c;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar28 = pdVar11 + iVar46 * 2;\n                *pdVar28 = dStack_250;\n                pdVar28[1] = dStack_248;\n                if (1 < (int)uVar41) {\n                  dVar63 = dVar63 - dVar67;\n                  uVar42 = 1;\n                  do {\n                    uVar45 = uVar42 + 1;\n                    dVar70 = ((double)(int)uVar42 * dVar63) / (double)(int)uVar41 + dVar67;\n                    uVar71 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar71);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar68;\n                    uVar71 = (*pcVar48)(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar71);\n                    pdVar28[3] = dVar53 * dVar73 + dVar69;\n                    uVar42 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar41);\n                }\n                *pdVar11 = dStack_288;\n                pdVar11[1] = dStack_280;\n                dStack_258 = dVar59;\n                dStack_260 = dVar60;\n                dVar67 = dStack_2a0;\n                dVar68 = dStack_2a8;\n                dVar70 = dStack_2b0;\n                dVar74 = dStack_2b8;\n                iVar44 = iVar30;\n                iVar46 = 1;\n                dVar63 = dVar65;\n              }\n            }" { (if_statement "if (ABS(dVar65) < *(double *)(iVar8 + 0x13f8)) {\n                dVar67 = 0.0;\n                dVar68 = dVar54;\n                if (0.0 <= dVar65) {\n                  if (0.0 <= dVar55 - dVar73) goto LAB_000a53e0;\n                }\n                else if (dVar55 - dVar73 < 0.0) {\nLAB_000a53e0:\n                  dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar59) < *(double *)(iVar8 + 0x13f8)) {\n                dVar65 = 0.0;\n                dVar68 = dVar54 / dVar75;\n                if (0.0 <= dVar55 - dVar73) {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (dVar58 - dVar69 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (0.0 <= dVar58 - dVar69) {\nLAB_000a5880:\n                    dVar67 = *(double *)(iVar30 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar67 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar65 = (dVar55 - dVar73) / (dVar58 - dVar69);\n                dVar67 = dVar72 / dVar65;\n                dVar68 = dVar54 / (dVar67 * dVar67 + *(double *)(iVar13 + 0x1438));\n              }" if (parenthesized_expression "(ABS(dVar65) < *(double *)(iVar8 + 0x13f8))" ( (binary_expression "ABS(dVar65) < *(double *)(iVar8 + 0x13f8)" (call_expression "ABS(dVar65)" identifier (argument_list "(dVar65)" ( identifier ))) < (pointer_expression "*(double *)(iVar8 + 0x13f8)" * (cast_expression "(double *)(iVar8 + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x13f8)" ( (binary_expression "iVar8 + 0x13f8" identifier + number_literal) ))))) )) (compound_statement "{\n                dVar67 = 0.0;\n                dVar68 = dVar54;\n                if (0.0 <= dVar65) {\n                  if (0.0 <= dVar55 - dVar73) goto LAB_000a53e0;\n                }\n                else if (dVar55 - dVar73 < 0.0) {\nLAB_000a53e0:\n                  dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd8) + 0x47d0);\n              }" { (expression_statement "dVar67 = 0.0;" (assignment_expression "dVar67 = 0.0" identifier = number_literal) ;) (expression_statement "dVar68 = dVar54;" (assignment_expression "dVar68 = dVar54" identifier = identifier) ;) (if_statement "if (0.0 <= dVar65) {\n                  if (0.0 <= dVar55 - dVar73) goto LAB_000a53e0;\n                }\n                else if (dVar55 - dVar73 < 0.0) {\nLAB_000a53e0:\n                  dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }" if (parenthesized_expression "(0.0 <= dVar65)" ( (binary_expression "0.0 <= dVar65" number_literal <= identifier) )) (compound_statement "{\n                  if (0.0 <= dVar55 - dVar73) goto LAB_000a53e0;\n                }" { (if_statement "if (0.0 <= dVar55 - dVar73) goto LAB_000a53e0;" if (parenthesized_expression "(0.0 <= dVar55 - dVar73)" ( (binary_expression "0.0 <= dVar55 - dVar73" number_literal <= (binary_expression "dVar55 - dVar73" identifier - identifier)) )) (goto_statement "goto LAB_000a53e0;" goto statement_identifier ;)) }) (else_clause "else if (dVar55 - dVar73 < 0.0) {\nLAB_000a53e0:\n                  dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }" else (if_statement "if (dVar55 - dVar73 < 0.0) {\nLAB_000a53e0:\n                  dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }" if (parenthesized_expression "(dVar55 - dVar73 < 0.0)" ( (binary_expression "dVar55 - dVar73 < 0.0" (binary_expression "dVar55 - dVar73" identifier - identifier) < number_literal) )) (compound_statement "{\nLAB_000a53e0:\n                  dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }" { (labeled_statement "LAB_000a53e0:\n                  dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);" statement_identifier : (expression_statement "dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);" (assignment_expression "dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68)" identifier = (pointer_expression "*(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68)" * (cast_expression "(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar47 + 0x303bd0) + 0x1a68)" ( (binary_expression "*(int *)(puVar47 + 0x303bd0) + 0x1a68" (pointer_expression "*(int *)(puVar47 + 0x303bd0)" * (cast_expression "(int *)(puVar47 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x303bd0)" ( (binary_expression "puVar47 + 0x303bd0" identifier + number_literal) )))) + number_literal) ))))) ;)) (goto_statement "goto joined_r0x000a568c;" goto statement_identifier ;) })))) (expression_statement "dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd8) + 0x47d0);" (assignment_expression "dVar65 = *(double *)(*(int *)(puVar47 + 0x303bd8) + 0x47d0)" identifier = (pointer_expression "*(double *)(*(int *)(puVar47 + 0x303bd8) + 0x47d0)" * (cast_expression "(double *)(*(int *)(puVar47 + 0x303bd8) + 0x47d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar47 + 0x303bd8) + 0x47d0)" ( (binary_expression "*(int *)(puVar47 + 0x303bd8) + 0x47d0" (pointer_expression "*(int *)(puVar47 + 0x303bd8)" * (cast_expression "(int *)(puVar47 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x303bd8)" ( (binary_expression "puVar47 + 0x303bd8" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else if (ABS(dVar59) < *(double *)(iVar8 + 0x13f8)) {\n                dVar65 = 0.0;\n                dVar68 = dVar54 / dVar75;\n                if (0.0 <= dVar55 - dVar73) {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (dVar58 - dVar69 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (0.0 <= dVar58 - dVar69) {\nLAB_000a5880:\n                    dVar67 = *(double *)(iVar30 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar67 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar65 = (dVar55 - dVar73) / (dVar58 - dVar69);\n                dVar67 = dVar72 / dVar65;\n                dVar68 = dVar54 / (dVar67 * dVar67 + *(double *)(iVar13 + 0x1438));\n              }" else (if_statement "if (ABS(dVar59) < *(double *)(iVar8 + 0x13f8)) {\n                dVar65 = 0.0;\n                dVar68 = dVar54 / dVar75;\n                if (0.0 <= dVar55 - dVar73) {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (dVar58 - dVar69 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (0.0 <= dVar58 - dVar69) {\nLAB_000a5880:\n                    dVar67 = *(double *)(iVar30 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar67 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar65 = (dVar55 - dVar73) / (dVar58 - dVar69);\n                dVar67 = dVar72 / dVar65;\n                dVar68 = dVar54 / (dVar67 * dVar67 + *(double *)(iVar13 + 0x1438));\n              }" if (parenthesized_expression "(ABS(dVar59) < *(double *)(iVar8 + 0x13f8))" ( (binary_expression "ABS(dVar59) < *(double *)(iVar8 + 0x13f8)" (call_expression "ABS(dVar59)" identifier (argument_list "(dVar59)" ( identifier ))) < (pointer_expression "*(double *)(iVar8 + 0x13f8)" * (cast_expression "(double *)(iVar8 + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x13f8)" ( (binary_expression "iVar8 + 0x13f8" identifier + number_literal) ))))) )) (compound_statement "{\n                dVar65 = 0.0;\n                dVar68 = dVar54 / dVar75;\n                if (0.0 <= dVar55 - dVar73) {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (dVar58 - dVar69 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (0.0 <= dVar58 - dVar69) {\nLAB_000a5880:\n                    dVar67 = *(double *)(iVar30 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar67 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);\n              }" { (expression_statement "dVar65 = 0.0;" (assignment_expression "dVar65 = 0.0" identifier = number_literal) ;) (expression_statement "dVar68 = dVar54 / dVar75;" (assignment_expression "dVar68 = dVar54 / dVar75" identifier = (binary_expression "dVar54 / dVar75" identifier / identifier)) ;) (if_statement "if (0.0 <= dVar55 - dVar73) {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (dVar58 - dVar69 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (0.0 <= dVar58 - dVar69) {\nLAB_000a5880:\n                    dVar67 = *(double *)(iVar30 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }" if (parenthesized_expression "(0.0 <= dVar55 - dVar73)" ( (binary_expression "0.0 <= dVar55 - dVar73" number_literal <= (binary_expression "dVar55 - dVar73" identifier - identifier)) )) (compound_statement "{\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (dVar58 - dVar69 < 0.0) goto LAB_000a5880;\n                }" { (expression_statement "iVar30 = *(int *)(puVar47 + 0x303bd8);" (assignment_expression "iVar30 = *(int *)(puVar47 + 0x303bd8)" identifier = (pointer_expression "*(int *)(puVar47 + 0x303bd8)" * (cast_expression "(int *)(puVar47 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x303bd8)" ( (binary_expression "puVar47 + 0x303bd8" identifier + number_literal) ))))) ;) (if_statement "if (dVar58 - dVar69 < 0.0) goto LAB_000a5880;" if (parenthesized_expression "(dVar58 - dVar69 < 0.0)" ( (binary_expression "dVar58 - dVar69 < 0.0" (binary_expression "dVar58 - dVar69" identifier - identifier) < number_literal) )) (goto_statement "goto LAB_000a5880;" goto statement_identifier ;)) }) (else_clause "else {\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (0.0 <= dVar58 - dVar69) {\nLAB_000a5880:\n                    dVar67 = *(double *)(iVar30 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }" else (compound_statement "{\n                  iVar30 = *(int *)(puVar47 + 0x303bd8);\n                  if (0.0 <= dVar58 - dVar69) {\nLAB_000a5880:\n                    dVar67 = *(double *)(iVar30 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }" { (expression_statement "iVar30 = *(int *)(puVar47 + 0x303bd8);" (assignment_expression "iVar30 = *(int *)(puVar47 + 0x303bd8)" identifier = (pointer_expression "*(int *)(puVar47 + 0x303bd8)" * (cast_expression "(int *)(puVar47 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x303bd8)" ( (binary_expression "puVar47 + 0x303bd8" identifier + number_literal) ))))) ;) (if_statement "if (0.0 <= dVar58 - dVar69) {\nLAB_000a5880:\n                    dVar67 = *(double *)(iVar30 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }" if (parenthesized_expression "(0.0 <= dVar58 - dVar69)" ( (binary_expression "0.0 <= dVar58 - dVar69" number_literal <= (binary_expression "dVar58 - dVar69" identifier - identifier)) )) (compound_statement "{\nLAB_000a5880:\n                    dVar67 = *(double *)(iVar30 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }" { (labeled_statement "LAB_000a5880:\n                    dVar67 = *(double *)(iVar30 + 0x47d0);" statement_identifier : (expression_statement "dVar67 = *(double *)(iVar30 + 0x47d0);" (assignment_expression "dVar67 = *(double *)(iVar30 + 0x47d0)" identifier = (pointer_expression "*(double *)(iVar30 + 0x47d0)" * (cast_expression "(double *)(iVar30 + 0x47d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 + 0x47d0)" ( (binary_expression "iVar30 + 0x47d0" identifier + number_literal) ))))) ;)) (goto_statement "goto joined_r0x000a568c;" goto statement_identifier ;) })) }))) (expression_statement "dVar67 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68);" (assignment_expression "dVar67 = *(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68)" identifier = (pointer_expression "*(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68)" * (cast_expression "(double *)(*(int *)(puVar47 + 0x303bd0) + 0x1a68)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar47 + 0x303bd0) + 0x1a68)" ( (binary_expression "*(int *)(puVar47 + 0x303bd0) + 0x1a68" (pointer_expression "*(int *)(puVar47 + 0x303bd0)" * (cast_expression "(int *)(puVar47 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x303bd0)" ( (binary_expression "puVar47 + 0x303bd0" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n                dVar65 = (dVar55 - dVar73) / (dVar58 - dVar69);\n                dVar67 = dVar72 / dVar65;\n                dVar68 = dVar54 / (dVar67 * dVar67 + *(double *)(iVar13 + 0x1438));\n              }" else (compound_statement "{\n                dVar65 = (dVar55 - dVar73) / (dVar58 - dVar69);\n                dVar67 = dVar72 / dVar65;\n                dVar68 = dVar54 / (dVar67 * dVar67 + *(double *)(iVar13 + 0x1438));\n              }" { (expression_statement "dVar65 = (dVar55 - dVar73) / (dVar58 - dVar69);" (assignment_expression "dVar65 = (dVar55 - dVar73) / (dVar58 - dVar69)" identifier = (binary_expression "(dVar55 - dVar73) / (dVar58 - dVar69)" (parenthesized_expression "(dVar55 - dVar73)" ( (binary_expression "dVar55 - dVar73" identifier - identifier) )) / (parenthesized_expression "(dVar58 - dVar69)" ( (binary_expression "dVar58 - dVar69" identifier - identifier) )))) ;) (expression_statement "dVar67 = dVar72 / dVar65;" (assignment_expression "dVar67 = dVar72 / dVar65" identifier = (binary_expression "dVar72 / dVar65" identifier / identifier)) ;) (expression_statement "dVar68 = dVar54 / (dVar67 * dVar67 + *(double *)(iVar13 + 0x1438));" (assignment_expression "dVar68 = dVar54 / (dVar67 * dVar67 + *(double *)(iVar13 + 0x1438))" identifier = (binary_expression "dVar54 / (dVar67 * dVar67 + *(double *)(iVar13 + 0x1438))" identifier / (parenthesized_expression "(dVar67 * dVar67 + *(double *)(iVar13 + 0x1438))" ( (binary_expression "dVar67 * dVar67 + *(double *)(iVar13 + 0x1438)" (binary_expression "dVar67 * dVar67" identifier * identifier) + (pointer_expression "*(double *)(iVar13 + 0x1438)" * (cast_expression "(double *)(iVar13 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x1438)" ( (binary_expression "iVar13 + 0x1438" identifier + number_literal) ))))) )))) ;) }))))) (labeled_statement "joined_r0x000a568c:\n              pdVar28 = pdVar9 + sVar49 * 5;" statement_identifier : (expression_statement "pdVar28 = pdVar9 + sVar49 * 5;" (assignment_expression "pdVar28 = pdVar9 + sVar49 * 5" identifier = (binary_expression "pdVar9 + sVar49 * 5" identifier + (binary_expression "sVar49 * 5" identifier * number_literal))) ;)) (expression_statement "dVar70 = SQRT(dVar68);" (assignment_expression "dVar70 = SQRT(dVar68)" identifier = (call_expression "SQRT(dVar68)" identifier (argument_list "(dVar68)" ( identifier )))) ;) (if_statement "if (dVar68 < 0.0) {\n                (**(code **)(puVar47 + 0x304770))();\n                dVar69 = *pdVar28;\n                dVar73 = pdVar28[1];\n                dVar58 = pdVar16[5];\n                dVar55 = pdVar16[6];\n              }" if (parenthesized_expression "(dVar68 < 0.0)" ( (binary_expression "dVar68 < 0.0" identifier < number_literal) )) (compound_statement "{\n                (**(code **)(puVar47 + 0x304770))();\n                dVar69 = *pdVar28;\n                dVar73 = pdVar28[1];\n                dVar58 = pdVar16[5];\n                dVar55 = pdVar16[6];\n              }" { (expression_statement "(**(code **)(puVar47 + 0x304770))();" (call_expression "(**(code **)(puVar47 + 0x304770))()" (parenthesized_expression "(**(code **)(puVar47 + 0x304770))" ( (pointer_expression "**(code **)(puVar47 + 0x304770)" * (pointer_expression "*(code **)(puVar47 + 0x304770)" * (cast_expression "(code **)(puVar47 + 0x304770)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x304770)" ( (binary_expression "puVar47 + 0x304770" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "dVar69 = *pdVar28;" (assignment_expression "dVar69 = *pdVar28" identifier = (pointer_expression "*pdVar28" * identifier)) ;) (expression_statement "dVar73 = pdVar28[1];" (assignment_expression "dVar73 = pdVar28[1]" identifier = (subscript_expression "pdVar28[1]" identifier [ number_literal ])) ;) (expression_statement "dVar58 = pdVar16[5];" (assignment_expression "dVar58 = pdVar16[5]" identifier = (subscript_expression "pdVar16[5]" identifier [ number_literal ])) ;) (expression_statement "dVar55 = pdVar16[6];" (assignment_expression "dVar55 = pdVar16[6]" identifier = (subscript_expression "pdVar16[6]" identifier [ number_literal ])) ;) })) (expression_statement "dVar67 = dVar67 * dVar70;" (assignment_expression "dVar67 = dVar67 * dVar70" identifier = (binary_expression "dVar67 * dVar70" identifier * identifier)) ;) (expression_statement "dStack_2a8 = dVar58 - dVar70;" (assignment_expression "dStack_2a8 = dVar58 - dVar70" identifier = (binary_expression "dVar58 - dVar70" identifier - identifier)) ;) (expression_statement "dStack_2a0 = dVar55 - dVar67;" (assignment_expression "dStack_2a0 = dVar55 - dVar67" identifier = (binary_expression "dVar55 - dVar67" identifier - identifier)) ;) (expression_statement "dStack_278 = dVar69 - dVar70;" (assignment_expression "dStack_278 = dVar69 - dVar70" identifier = (binary_expression "dVar69 - dVar70" identifier - identifier)) ;) (expression_statement "dStack_270 = dVar73 - dVar67;" (assignment_expression "dStack_270 = dVar73 - dVar67" identifier = (binary_expression "dVar73 - dVar67" identifier - identifier)) ;) (expression_statement "dStack_2b8 = dVar70 + dVar58;" (assignment_expression "dStack_2b8 = dVar70 + dVar58" identifier = (binary_expression "dVar70 + dVar58" identifier + identifier)) ;) (expression_statement "dStack_2b0 = dVar67 + dVar55;" (assignment_expression "dStack_2b0 = dVar67 + dVar55" identifier = (binary_expression "dVar67 + dVar55" identifier + identifier)) ;) (expression_statement "dStack_288 = dVar70 + dVar69;" (assignment_expression "dStack_288 = dVar70 + dVar69" identifier = (binary_expression "dVar70 + dVar69" identifier + identifier)) ;) (expression_statement "dStack_280 = dVar67 + dVar73;" (assignment_expression "dStack_280 = dVar67 + dVar73" identifier = (binary_expression "dVar67 + dVar73" identifier + identifier)) ;) (if_statement "if (0.0 < dVar59 * dVar70 - dVar60 * dVar67) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar70 + dVar58;\n                dStack_2a0 = dVar67 + dVar55;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar70 + dVar69;\n                dStack_270 = dVar67 + dVar73;\n              }" if (parenthesized_expression "(0.0 < dVar59 * dVar70 - dVar60 * dVar67)" ( (binary_expression "0.0 < dVar59 * dVar70 - dVar60 * dVar67" number_literal < (binary_expression "dVar59 * dVar70 - dVar60 * dVar67" (binary_expression "dVar59 * dVar70" identifier * identifier) - (binary_expression "dVar60 * dVar67" identifier * identifier))) )) (compound_statement "{\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar70 + dVar58;\n                dStack_2a0 = dVar67 + dVar55;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar70 + dVar69;\n                dStack_270 = dVar67 + dVar73;\n              }" { (expression_statement "dStack_2b8 = dStack_2a8;" (assignment_expression "dStack_2b8 = dStack_2a8" identifier = identifier) ;) (expression_statement "dStack_2b0 = dStack_2a0;" (assignment_expression "dStack_2b0 = dStack_2a0" identifier = identifier) ;) (expression_statement "dStack_2a8 = dVar70 + dVar58;" (assignment_expression "dStack_2a8 = dVar70 + dVar58" identifier = (binary_expression "dVar70 + dVar58" identifier + identifier)) ;) (expression_statement "dStack_2a0 = dVar67 + dVar55;" (assignment_expression "dStack_2a0 = dVar67 + dVar55" identifier = (binary_expression "dVar67 + dVar55" identifier + identifier)) ;) (expression_statement "dStack_288 = dStack_278;" (assignment_expression "dStack_288 = dStack_278" identifier = identifier) ;) (expression_statement "dStack_280 = dStack_270;" (assignment_expression "dStack_280 = dStack_270" identifier = identifier) ;) (expression_statement "dStack_278 = dVar70 + dVar69;" (assignment_expression "dStack_278 = dVar70 + dVar69" identifier = (binary_expression "dVar70 + dVar69" identifier + identifier)) ;) (expression_statement "dStack_270 = dVar67 + dVar73;" (assignment_expression "dStack_270 = dVar67 + dVar73" identifier = (binary_expression "dVar67 + dVar73" identifier + identifier)) ;) })) (expression_statement "dVar67 = dVar63 - dVar65;" (assignment_expression "dVar67 = dVar63 - dVar65" identifier = (binary_expression "dVar63 - dVar65" identifier - identifier)) ;) (expression_statement "dVar69 = dStack_250;" (assignment_expression "dVar69 = dStack_250" identifier = identifier) ;) (expression_statement "dVar73 = dStack_248;" (assignment_expression "dVar73 = dStack_248" identifier = identifier) ;) (expression_statement "dVar55 = dStack_238;" (assignment_expression "dVar55 = dStack_238" identifier = identifier) ;) (expression_statement "dVar58 = dStack_240;" (assignment_expression "dVar58 = dStack_240" identifier = identifier) ;) (if_statement "if (*(double *)(iVar8 + 0x13f8) <= ABS(dVar67)) {\n                dVar69 = (((dVar64 * dVar63 - dVar61) - dVar65 * dStack_2b8) + dStack_2b0) / dVar67;\n                dVar58 = (((dVar63 * dVar62 - dVar66) - dVar65 * dStack_2a8) + dStack_2a0) / dVar67;\n                dVar73 = (dVar69 - dVar64) * dVar63 + dVar61;\n                dVar55 = (dVar58 - dVar62) * dVar63 + dVar66;\n              }" if (parenthesized_expression "(*(double *)(iVar8 + 0x13f8) <= ABS(dVar67))" ( (binary_expression "*(double *)(iVar8 + 0x13f8) <= ABS(dVar67)" (pointer_expression "*(double *)(iVar8 + 0x13f8)" * (cast_expression "(double *)(iVar8 + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x13f8)" ( (binary_expression "iVar8 + 0x13f8" identifier + number_literal) )))) <= (call_expression "ABS(dVar67)" identifier (argument_list "(dVar67)" ( identifier )))) )) (compound_statement "{\n                dVar69 = (((dVar64 * dVar63 - dVar61) - dVar65 * dStack_2b8) + dStack_2b0) / dVar67;\n                dVar58 = (((dVar63 * dVar62 - dVar66) - dVar65 * dStack_2a8) + dStack_2a0) / dVar67;\n                dVar73 = (dVar69 - dVar64) * dVar63 + dVar61;\n                dVar55 = (dVar58 - dVar62) * dVar63 + dVar66;\n              }" { (expression_statement "dVar69 = (((dVar64 * dVar63 - dVar61) - dVar65 * dStack_2b8) + dStack_2b0) / dVar67;" (assignment_expression "dVar69 = (((dVar64 * dVar63 - dVar61) - dVar65 * dStack_2b8) + dStack_2b0) / dVar67" identifier = (binary_expression "(((dVar64 * dVar63 - dVar61) - dVar65 * dStack_2b8) + dStack_2b0) / dVar67" (parenthesized_expression "(((dVar64 * dVar63 - dVar61) - dVar65 * dStack_2b8) + dStack_2b0)" ( (binary_expression "((dVar64 * dVar63 - dVar61) - dVar65 * dStack_2b8) + dStack_2b0" (parenthesized_expression "((dVar64 * dVar63 - dVar61) - dVar65 * dStack_2b8)" ( (binary_expression "(dVar64 * dVar63 - dVar61) - dVar65 * dStack_2b8" (parenthesized_expression "(dVar64 * dVar63 - dVar61)" ( (binary_expression "dVar64 * dVar63 - dVar61" (binary_expression "dVar64 * dVar63" identifier * identifier) - identifier) )) - (binary_expression "dVar65 * dStack_2b8" identifier * identifier)) )) + identifier) )) / identifier)) ;) (expression_statement "dVar58 = (((dVar63 * dVar62 - dVar66) - dVar65 * dStack_2a8) + dStack_2a0) / dVar67;" (assignment_expression "dVar58 = (((dVar63 * dVar62 - dVar66) - dVar65 * dStack_2a8) + dStack_2a0) / dVar67" identifier = (binary_expression "(((dVar63 * dVar62 - dVar66) - dVar65 * dStack_2a8) + dStack_2a0) / dVar67" (parenthesized_expression "(((dVar63 * dVar62 - dVar66) - dVar65 * dStack_2a8) + dStack_2a0)" ( (binary_expression "((dVar63 * dVar62 - dVar66) - dVar65 * dStack_2a8) + dStack_2a0" (parenthesized_expression "((dVar63 * dVar62 - dVar66) - dVar65 * dStack_2a8)" ( (binary_expression "(dVar63 * dVar62 - dVar66) - dVar65 * dStack_2a8" (parenthesized_expression "(dVar63 * dVar62 - dVar66)" ( (binary_expression "dVar63 * dVar62 - dVar66" (binary_expression "dVar63 * dVar62" identifier * identifier) - identifier) )) - (binary_expression "dVar65 * dStack_2a8" identifier * identifier)) )) + identifier) )) / identifier)) ;) (expression_statement "dVar73 = (dVar69 - dVar64) * dVar63 + dVar61;" (assignment_expression "dVar73 = (dVar69 - dVar64) * dVar63 + dVar61" identifier = (binary_expression "(dVar69 - dVar64) * dVar63 + dVar61" (binary_expression "(dVar69 - dVar64) * dVar63" (parenthesized_expression "(dVar69 - dVar64)" ( (binary_expression "dVar69 - dVar64" identifier - identifier) )) * identifier) + identifier)) ;) (expression_statement "dVar55 = (dVar58 - dVar62) * dVar63 + dVar66;" (assignment_expression "dVar55 = (dVar58 - dVar62) * dVar63 + dVar66" identifier = (binary_expression "(dVar58 - dVar62) * dVar63 + dVar66" (binary_expression "(dVar58 - dVar62) * dVar63" (parenthesized_expression "(dVar58 - dVar62)" ( (binary_expression "dVar58 - dVar62" identifier - identifier) )) * identifier) + identifier)) ;) })) (if_statement "if ((int)uStack_22c <= iVar46 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar11 = (double *)\n                            (**(code **)(puVar47 + 0x304710))(pdVar11,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                }\n              }" if (parenthesized_expression "((int)uStack_22c <= iVar46 + 0x618)" ( (binary_expression "(int)uStack_22c <= iVar46 + 0x618" (cast_expression "(int)uStack_22c" ( (type_descriptor "int" primitive_type) ) identifier) <= (binary_expression "iVar46 + 0x618" identifier + number_literal)) )) (compound_statement "{\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar11 = (double *)\n                            (**(code **)(puVar47 + 0x304710))(pdVar11,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                }\n              }" { (if_statement "if (uStack_22c < 0xfffff9e8) {\n                  pdVar11 = (double *)\n                            (**(code **)(puVar47 + 0x304710))(pdVar11,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                }" if (parenthesized_expression "(uStack_22c < 0xfffff9e8)" ( (binary_expression "uStack_22c < 0xfffff9e8" identifier < number_literal) )) (compound_statement "{\n                  pdVar11 = (double *)\n                            (**(code **)(puVar47 + 0x304710))(pdVar11,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }" { (expression_statement "pdVar11 = (double *)\n                            (**(code **)(puVar47 + 0x304710))(pdVar11,uStack_22c + 0xc30,0x10);" (assignment_expression "pdVar11 = (double *)\n                            (**(code **)(puVar47 + 0x304710))(pdVar11,uStack_22c + 0xc30,0x10)" identifier = (cast_expression "(double *)\n                            (**(code **)(puVar47 + 0x304710))(pdVar11,uStack_22c + 0xc30,0x10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar47 + 0x304710))(pdVar11,uStack_22c + 0xc30,0x10)" (parenthesized_expression "(**(code **)(puVar47 + 0x304710))" ( (pointer_expression "**(code **)(puVar47 + 0x304710)" * (pointer_expression "*(code **)(puVar47 + 0x304710)" * (cast_expression "(code **)(puVar47 + 0x304710)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x304710)" ( (binary_expression "puVar47 + 0x304710" identifier + number_literal) ))))) )) (argument_list "(pdVar11,uStack_22c + 0xc30,0x10)" ( identifier , (binary_expression "uStack_22c + 0xc30" identifier + number_literal) , number_literal ))))) ;) (expression_statement "uStack_22c = uStack_22c + 0x618;" (assignment_expression "uStack_22c = uStack_22c + 0x618" identifier = (binary_expression "uStack_22c + 0x618" identifier + number_literal)) ;) }) (else_clause "else {\n                  pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                }" else (compound_statement "{\n                  pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                }" { (expression_statement "pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);" (assignment_expression "pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11)" identifier = (cast_expression "(double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar47 + 0x3042b0))(pdVar11)" (parenthesized_expression "(**(code **)(puVar47 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar47 + 0x3042b0)" * (pointer_expression "*(code **)(puVar47 + 0x3042b0)" * (cast_expression "(code **)(puVar47 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3042b0)" ( (binary_expression "puVar47 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar11)" ( identifier ))))) ;) }))) })) (if_statement "if (iVar44 + 0x618 < (int)uVar10) {\n                if (pdVar11 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a5710:\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar10) {\n                  pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  if (pdVar11 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar12 != (double *)0x0) goto LAB_000a5700;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar48)(pdVar9);\n                  uVar37 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar12 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                uVar10 = uVar10 + 0x618;\n                if (pdVar11 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar12 == (double *)0x0) {\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  goto LAB_000a5710;\n                }\n              }" if (parenthesized_expression "(iVar44 + 0x618 < (int)uVar10)" ( (binary_expression "iVar44 + 0x618 < (int)uVar10" (binary_expression "iVar44 + 0x618" identifier + number_literal) < (cast_expression "(int)uVar10" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                if (pdVar11 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a5710:\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }" { (if_statement "if (pdVar11 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a5710:\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                  goto LAB_000a5714;\n                }" if (parenthesized_expression "(pdVar11 == (double *)0x0)" ( (binary_expression "pdVar11 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000a5700:\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a5710:\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                  goto LAB_000a5714;\n                }" { (labeled_statement "LAB_000a5700:\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar12);" statement_identifier : (expression_statement "(**(code **)(puVar47 + 0x3042b0))(pdVar12);" (call_expression "(**(code **)(puVar47 + 0x3042b0))(pdVar12)" (parenthesized_expression "(**(code **)(puVar47 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar47 + 0x3042b0)" * (pointer_expression "*(code **)(puVar47 + 0x3042b0)" * (cast_expression "(code **)(puVar47 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3042b0)" ( (binary_expression "puVar47 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar12)" ( identifier ))) ;)) (labeled_statement "LAB_000a5710:\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);" statement_identifier : (expression_statement "pcVar48 = *(code **)(puVar47 + 0x3042b0);" (assignment_expression "pcVar48 = *(code **)(puVar47 + 0x3042b0)" identifier = (pointer_expression "*(code **)(puVar47 + 0x3042b0)" * (cast_expression "(code **)(puVar47 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3042b0)" ( (binary_expression "puVar47 + 0x3042b0" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_000a5714;" goto statement_identifier ;) })) }) (else_clause "else {\n                if (0xfffff9e7 < uVar10) {\n                  pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  if (pdVar11 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar12 != (double *)0x0) goto LAB_000a5700;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar48)(pdVar9);\n                  uVar37 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar12 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                uVar10 = uVar10 + 0x618;\n                if (pdVar11 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar12 == (double *)0x0) {\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  goto LAB_000a5710;\n                }\n              }" else (compound_statement "{\n                if (0xfffff9e7 < uVar10) {\n                  pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  if (pdVar11 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar12 != (double *)0x0) goto LAB_000a5700;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar48)(pdVar9);\n                  uVar37 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar12 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                uVar10 = uVar10 + 0x618;\n                if (pdVar11 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar12 == (double *)0x0) {\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  goto LAB_000a5710;\n                }\n              }" { (if_statement "if (0xfffff9e7 < uVar10) {\n                  pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  if (pdVar11 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar12 != (double *)0x0) goto LAB_000a5700;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar48)(pdVar9);\n                  uVar37 = 0x1d17;\n                  goto LAB_000a5724;\n                }" if (parenthesized_expression "(0xfffff9e7 < uVar10)" ( (binary_expression "0xfffff9e7 < uVar10" number_literal < identifier) )) (compound_statement "{\n                  pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  if (pdVar11 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar12 != (double *)0x0) goto LAB_000a5700;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar48)(pdVar9);\n                  uVar37 = 0x1d17;\n                  goto LAB_000a5724;\n                }" { (expression_statement "pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);" (assignment_expression "pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12)" identifier = (cast_expression "(double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar47 + 0x3042b0))(pdVar12)" (parenthesized_expression "(**(code **)(puVar47 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar47 + 0x3042b0)" * (pointer_expression "*(code **)(puVar47 + 0x3042b0)" * (cast_expression "(code **)(puVar47 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3042b0)" ( (binary_expression "puVar47 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar12)" ( identifier ))))) ;) (if_statement "if (pdVar11 != (double *)0x0) goto LAB_000a5594;" if (parenthesized_expression "(pdVar11 != (double *)0x0)" ( (binary_expression "pdVar11 != (double *)0x0" identifier != (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000a5594;" goto statement_identifier ;)) (labeled_statement "LAB_000a598c:\n                  if (pdVar12 != (double *)0x0) goto LAB_000a5700;" statement_identifier : (if_statement "if (pdVar12 != (double *)0x0) goto LAB_000a5700;" if (parenthesized_expression "(pdVar12 != (double *)0x0)" ( (binary_expression "pdVar12 != (double *)0x0" identifier != (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000a5700;" goto statement_identifier ;))) (expression_statement "pcVar48 = *(code **)(puVar47 + 0x3042b0);" (assignment_expression "pcVar48 = *(code **)(puVar47 + 0x3042b0)" identifier = (pointer_expression "*(code **)(puVar47 + 0x3042b0)" * (cast_expression "(code **)(puVar47 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3042b0)" ( (binary_expression "puVar47 + 0x3042b0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000a5714:\n                  (*pcVar48)(pdVar9);" statement_identifier : (expression_statement "(*pcVar48)(pdVar9);" (call_expression "(*pcVar48)(pdVar9)" (parenthesized_expression "(*pcVar48)" ( (pointer_expression "*pcVar48" * identifier) )) (argument_list "(pdVar9)" ( identifier ))) ;)) (expression_statement "uVar37 = 0x1d17;" (assignment_expression "uVar37 = 0x1d17" identifier = number_literal) ;) (goto_statement "goto LAB_000a5724;" goto statement_identifier ;) })) (expression_statement "pdVar12 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);" (assignment_expression "pdVar12 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10)" identifier = (cast_expression "(double *)(**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10)" (parenthesized_expression "(**(code **)(puVar47 + 0x304710))" ( (pointer_expression "**(code **)(puVar47 + 0x304710)" * (pointer_expression "*(code **)(puVar47 + 0x304710)" * (cast_expression "(code **)(puVar47 + 0x304710)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x304710)" ( (binary_expression "puVar47 + 0x304710" identifier + number_literal) ))))) )) (argument_list "(pdVar12,uVar10 + 0xc30,0x10)" ( identifier , (binary_expression "uVar10 + 0xc30" identifier + number_literal) , number_literal ))))) ;) (expression_statement "uVar10 = uVar10 + 0x618;" (assignment_expression "uVar10 = uVar10 + 0x618" identifier = (binary_expression "uVar10 + 0x618" identifier + number_literal)) ;) (if_statement "if (pdVar11 == (double *)0x0) goto LAB_000a598c;" if (parenthesized_expression "(pdVar11 == (double *)0x0)" ( (binary_expression "pdVar11 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000a598c;" goto statement_identifier ;)) (labeled_statement "LAB_000a5594:\n                if (pdVar12 == (double *)0x0) {\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  goto LAB_000a5710;\n                }" statement_identifier : (if_statement "if (pdVar12 == (double *)0x0) {\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  goto LAB_000a5710;\n                }" if (parenthesized_expression "(pdVar12 == (double *)0x0)" ( (binary_expression "pdVar12 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  goto LAB_000a5710;\n                }" { (expression_statement "(**(code **)(puVar47 + 0x3042b0))(pdVar11);" (call_expression "(**(code **)(puVar47 + 0x3042b0))(pdVar11)" (parenthesized_expression "(**(code **)(puVar47 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar47 + 0x3042b0)" * (pointer_expression "*(code **)(puVar47 + 0x3042b0)" * (cast_expression "(code **)(puVar47 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3042b0)" ( (binary_expression "puVar47 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar11)" ( identifier ))) ;) (goto_statement "goto LAB_000a5710;" goto statement_identifier ;) }))) }))) (expression_statement "LVar14 = draw_info->linejoin;" (assignment_expression "LVar14 = draw_info->linejoin" identifier = (field_expression "draw_info->linejoin" identifier -> field_identifier)) ;) (expression_statement "dVar62 = dStack_278;" (assignment_expression "dVar62 = dStack_278" identifier = identifier) ;) (expression_statement "dVar61 = dStack_280;" (assignment_expression "dVar61 = dStack_280" identifier = identifier) ;) (expression_statement "dVar64 = dStack_288;" (assignment_expression "dVar64 = dStack_288" identifier = identifier) ;) (expression_statement "dVar66 = dStack_270;" (assignment_expression "dVar66 = dStack_270" identifier = identifier) ;) (expression_statement "sVar49 = sVar35;" (assignment_expression "sVar49 = sVar35" identifier = identifier) ;) (expression_statement "dVar63 = dVar65;" (assignment_expression "dVar63 = dVar65" identifier = identifier) ;) (if_statement "if (dVar60 * dStack_258 - dVar59 * dStack_260 <= 0.0) {\n                if (LVar14 != RoundJoin) {\n                  if (LVar14 == BevelJoin) {\n                    pdVar28 = pdVar11 + iVar46 * 2;\n                    pdVar12[iVar44 * 2] = dStack_240;\n                    (pdVar12 + iVar44 * 2)[1] = dStack_238;\n                    pdVar12[iVar44 * 2 + 2] = dStack_278;\n                    (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if (dVar57 < (dVar58 - dVar69) * (dVar58 - dVar69) +\n                                   (dVar55 - dVar73) * (dVar55 - dVar73)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar44 = iVar44 + 1;\n                      iVar46 = iVar46 + 1;\n                      *pdVar43 = dVar58;\n                      pdVar43[1] = dVar55;\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar30 = iVar46 + 1;\n                pdVar43 = pdVar11 + iVar46 * 2;\n                if ((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57) {\n                  *pdVar43 = dVar69;\n                  pdVar43[1] = dVar73;\n                }\n                else {\n                  iVar30 = iVar46 + 2;\n                  *pdVar43 = dStack_250;\n                  pdVar43[1] = dStack_248;\n                  pdVar11[iVar46 * 2 + 2] = dStack_288;\n                  (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                }\n                dVar69 = *pdVar28;\n                dVar68 = pdVar28[1];\n                dVar63 = dVar68;\n                dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_238 - dVar68,dStack_240 - dVar69);\n                dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_270 - dVar63,dStack_278 - dVar69);\n                if (dVar63 < dVar67) {\n                  dVar63 = dVar63 + *(double *)(iVar26 + 0x34a0);\n                }\n                dVar63 = dVar63 - dVar67;\n                dVar73 = *(double *)(iVar13 + 0x1438) / dVar53;\n                dVar70 = SQRT(dVar73);\n                if (dVar73 < 0.0) {\n                  (**(code **)(puVar47 + 0x304770))();\n                }\n                dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar63 / (dVar70 + dVar70));\n                dVar70 = *(double *)(iVar22 + 0x1410);\n                if (dVar73 < dVar70) {\n                  uVar42 = (uint)dVar73;\n                }\n                else {\n                  uVar42 = (int)(dVar73 - dVar70) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar30 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar46 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar11,iVar46,0x10);\n                  }\n                  else {\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  }\n                }\n                if (uVar42 + 0x618 < 0x4000001) {\n                  if ((int)uVar10 <= (int)(iVar44 + 0x618 + uVar42)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uVar10 < uVar42 + 0x618) goto LAB_000a67d4;\n                    iVar46 = uVar42 + uVar10;\n                    uVar10 = iVar46 + 0x618;\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,iVar46 + 0xc30,0x10);\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar11 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a6d2c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar12 = (double *)(*pcVar48)(pdVar12);\nLAB_000a64c4:\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a6884;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar28 = pdVar12 + iVar44 * 2;\n                *pdVar28 = dStack_240;\n                pdVar28[1] = dStack_238;\n                if (1 < (int)uVar42) {\n                  uVar71 = *(undefined8 *)(iVar26 + 0x34a0);\n                  uVar41 = 1;\n                  do {\n                    uVar45 = uVar41 + 1;\n                    dVar70 = ((double)(int)uVar41 * dVar63) / (double)(int)uVar42 + dVar67;\n                    uVar56 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar56);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar69;\n                    uVar56 = (*pcVar48)(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar56);\n                    pdVar28[3] = dVar53 * dVar73 + dVar68;\n                    uVar41 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar42);\n                }\n                *pdVar12 = dStack_278;\n                pdVar12[1] = dStack_270;\n                dStack_258 = dVar59;\n                dStack_260 = dVar60;\n                dVar67 = dStack_2a0;\n                dVar68 = dStack_2a8;\n                dVar70 = dStack_2b0;\n                dVar74 = dStack_2b8;\n                iVar44 = 1;\n                iVar46 = iVar30;\n                dVar63 = dVar65;\n              }\n              else {\n                if (LVar14 != RoundJoin) {\n                  if (LVar14 == BevelJoin) {\n                    iVar30 = iVar46 * 2;\n                    iVar3 = iVar46 * 2;\n                    iVar46 = iVar46 + 2;\n                    pdVar11[iVar30] = dStack_250;\n                    (pdVar11 + iVar30)[1] = dStack_248;\n                    pdVar28 = pdVar12 + iVar44 * 2;\n                    pdVar11[iVar3 + 2] = dStack_288;\n                    (pdVar11 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar58;\n                      pdVar28[1] = dVar55;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_240;\n                      pdVar28[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                          (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar43 = dStack_240;\n                      pdVar43[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar30 = iVar44 + 1;\n                pdVar43 = pdVar12 + iVar44 * 2;\n                if ((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57) {\n                  *pdVar43 = dVar58;\n                  pdVar43[1] = dVar55;\n                }\n                else {\n                  iVar30 = iVar44 + 2;\n                  *pdVar43 = dStack_240;\n                  pdVar43[1] = dStack_238;\n                  pdVar12[iVar44 * 2 + 2] = dStack_278;\n                  (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                }\n                dVar68 = *pdVar28;\n                dVar69 = pdVar28[1];\n                dVar63 = dVar68;\n                dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_248 - dVar69,dStack_250 - dVar68);\n                dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_280 - dVar69,dStack_288 - dVar63);\n                if (dVar67 < dVar63) {\n                  dVar67 = dVar67 + *(double *)(iVar26 + 0x34a0);\n                }\n                dVar73 = dVar67 - dVar63;\n                dVar70 = *(double *)(iVar13 + 0x1438) / dVar53;\n                dVar74 = SQRT(dVar70);\n                if (dVar70 < 0.0) {\n                  (**(code **)(puVar47 + 0x304770))();\n                }\n                dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar73 / (dVar74 + dVar74));\n                if (dVar73 < dVar51) {\n                  uVar41 = (uint)dVar73;\n                  uVar42 = uVar41 + 0x618;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                  if (uVar42 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar11 = (double *)(*pcVar48)(pdVar11);\n                }\n                else {\n                  uVar41 = (int)(dVar73 - dVar51) | 0x80000000;\n                  uVar42 = uVar41 + 0x618;\n                  if (0x4000000 < uVar42) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar46 + 0x618 + uVar41)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uStack_22c < uVar42) goto LAB_000a66a4;\n                    iVar44 = uStack_22c + uVar41;\n                    uStack_22c = iVar44 + 0x618;\n                    pdVar11 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar11,iVar44 + 0xc30,0x10);\n                  }\n                }\n                if (iVar30 + 0x618 < (int)uVar10) {\n                  if (pdVar11 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a665c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar10 < 0xfffff9e8) {\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                    uVar10 = uVar10 + 0x618;\n                  }\n                  else {\n                    pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  }\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a664c;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar28 = pdVar11 + iVar46 * 2;\n                *pdVar28 = dStack_250;\n                pdVar28[1] = dStack_248;\n                if (1 < (int)uVar41) {\n                  dVar63 = dVar63 - dVar67;\n                  uVar42 = 1;\n                  do {\n                    uVar45 = uVar42 + 1;\n                    dVar70 = ((double)(int)uVar42 * dVar63) / (double)(int)uVar41 + dVar67;\n                    uVar71 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar71);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar68;\n                    uVar71 = (*pcVar48)(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar71);\n                    pdVar28[3] = dVar53 * dVar73 + dVar69;\n                    uVar42 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar41);\n                }\n                *pdVar11 = dStack_288;\n                pdVar11[1] = dStack_280;\n                dStack_258 = dVar59;\n                dStack_260 = dVar60;\n                dVar67 = dStack_2a0;\n                dVar68 = dStack_2a8;\n                dVar70 = dStack_2b0;\n                dVar74 = dStack_2b8;\n                iVar44 = iVar30;\n                iVar46 = 1;\n                dVar63 = dVar65;\n              }" if (parenthesized_expression "(dVar60 * dStack_258 - dVar59 * dStack_260 <= 0.0)" ( (binary_expression "dVar60 * dStack_258 - dVar59 * dStack_260 <= 0.0" (binary_expression "dVar60 * dStack_258 - dVar59 * dStack_260" (binary_expression "dVar60 * dStack_258" identifier * identifier) - (binary_expression "dVar59 * dStack_260" identifier * identifier)) <= number_literal) )) (compound_statement "{\n                if (LVar14 != RoundJoin) {\n                  if (LVar14 == BevelJoin) {\n                    pdVar28 = pdVar11 + iVar46 * 2;\n                    pdVar12[iVar44 * 2] = dStack_240;\n                    (pdVar12 + iVar44 * 2)[1] = dStack_238;\n                    pdVar12[iVar44 * 2 + 2] = dStack_278;\n                    (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if (dVar57 < (dVar58 - dVar69) * (dVar58 - dVar69) +\n                                   (dVar55 - dVar73) * (dVar55 - dVar73)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar44 = iVar44 + 1;\n                      iVar46 = iVar46 + 1;\n                      *pdVar43 = dVar58;\n                      pdVar43[1] = dVar55;\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar30 = iVar46 + 1;\n                pdVar43 = pdVar11 + iVar46 * 2;\n                if ((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57) {\n                  *pdVar43 = dVar69;\n                  pdVar43[1] = dVar73;\n                }\n                else {\n                  iVar30 = iVar46 + 2;\n                  *pdVar43 = dStack_250;\n                  pdVar43[1] = dStack_248;\n                  pdVar11[iVar46 * 2 + 2] = dStack_288;\n                  (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                }\n                dVar69 = *pdVar28;\n                dVar68 = pdVar28[1];\n                dVar63 = dVar68;\n                dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_238 - dVar68,dStack_240 - dVar69);\n                dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_270 - dVar63,dStack_278 - dVar69);\n                if (dVar63 < dVar67) {\n                  dVar63 = dVar63 + *(double *)(iVar26 + 0x34a0);\n                }\n                dVar63 = dVar63 - dVar67;\n                dVar73 = *(double *)(iVar13 + 0x1438) / dVar53;\n                dVar70 = SQRT(dVar73);\n                if (dVar73 < 0.0) {\n                  (**(code **)(puVar47 + 0x304770))();\n                }\n                dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar63 / (dVar70 + dVar70));\n                dVar70 = *(double *)(iVar22 + 0x1410);\n                if (dVar73 < dVar70) {\n                  uVar42 = (uint)dVar73;\n                }\n                else {\n                  uVar42 = (int)(dVar73 - dVar70) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar30 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar46 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar11,iVar46,0x10);\n                  }\n                  else {\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  }\n                }\n                if (uVar42 + 0x618 < 0x4000001) {\n                  if ((int)uVar10 <= (int)(iVar44 + 0x618 + uVar42)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uVar10 < uVar42 + 0x618) goto LAB_000a67d4;\n                    iVar46 = uVar42 + uVar10;\n                    uVar10 = iVar46 + 0x618;\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,iVar46 + 0xc30,0x10);\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar11 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a6d2c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar12 = (double *)(*pcVar48)(pdVar12);\nLAB_000a64c4:\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a6884;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar28 = pdVar12 + iVar44 * 2;\n                *pdVar28 = dStack_240;\n                pdVar28[1] = dStack_238;\n                if (1 < (int)uVar42) {\n                  uVar71 = *(undefined8 *)(iVar26 + 0x34a0);\n                  uVar41 = 1;\n                  do {\n                    uVar45 = uVar41 + 1;\n                    dVar70 = ((double)(int)uVar41 * dVar63) / (double)(int)uVar42 + dVar67;\n                    uVar56 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar56);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar69;\n                    uVar56 = (*pcVar48)(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar56);\n                    pdVar28[3] = dVar53 * dVar73 + dVar68;\n                    uVar41 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar42);\n                }\n                *pdVar12 = dStack_278;\n                pdVar12[1] = dStack_270;\n                dStack_258 = dVar59;\n                dStack_260 = dVar60;\n                dVar67 = dStack_2a0;\n                dVar68 = dStack_2a8;\n                dVar70 = dStack_2b0;\n                dVar74 = dStack_2b8;\n                iVar44 = 1;\n                iVar46 = iVar30;\n                dVar63 = dVar65;\n              }" { (if_statement "if (LVar14 != RoundJoin) {\n                  if (LVar14 == BevelJoin) {\n                    pdVar28 = pdVar11 + iVar46 * 2;\n                    pdVar12[iVar44 * 2] = dStack_240;\n                    (pdVar12 + iVar44 * 2)[1] = dStack_238;\n                    pdVar12[iVar44 * 2 + 2] = dStack_278;\n                    (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if (dVar57 < (dVar58 - dVar69) * (dVar58 - dVar69) +\n                                   (dVar55 - dVar73) * (dVar55 - dVar73)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar44 = iVar44 + 1;\n                      iVar46 = iVar46 + 1;\n                      *pdVar43 = dVar58;\n                      pdVar43[1] = dVar55;\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }" if (parenthesized_expression "(LVar14 != RoundJoin)" ( (binary_expression "LVar14 != RoundJoin" identifier != identifier) )) (compound_statement "{\n                  if (LVar14 == BevelJoin) {\n                    pdVar28 = pdVar11 + iVar46 * 2;\n                    pdVar12[iVar44 * 2] = dStack_240;\n                    (pdVar12 + iVar44 * 2)[1] = dStack_238;\n                    pdVar12[iVar44 * 2 + 2] = dStack_278;\n                    (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if (dVar57 < (dVar58 - dVar69) * (dVar58 - dVar69) +\n                                   (dVar55 - dVar73) * (dVar55 - dVar73)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar44 = iVar44 + 1;\n                      iVar46 = iVar46 + 1;\n                      *pdVar43 = dVar58;\n                      pdVar43[1] = dVar55;\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }" { (if_statement "if (LVar14 == BevelJoin) {\n                    pdVar28 = pdVar11 + iVar46 * 2;\n                    pdVar12[iVar44 * 2] = dStack_240;\n                    (pdVar12 + iVar44 * 2)[1] = dStack_238;\n                    pdVar12[iVar44 * 2 + 2] = dStack_278;\n                    (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if (dVar57 < (dVar58 - dVar69) * (dVar58 - dVar69) +\n                                   (dVar55 - dVar73) * (dVar55 - dVar73)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar44 = iVar44 + 1;\n                      iVar46 = iVar46 + 1;\n                      *pdVar43 = dVar58;\n                      pdVar43[1] = dVar55;\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                    }\n                  }" if (parenthesized_expression "(LVar14 == BevelJoin)" ( (binary_expression "LVar14 == BevelJoin" identifier == identifier) )) (compound_statement "{\n                    pdVar28 = pdVar11 + iVar46 * 2;\n                    pdVar12[iVar44 * 2] = dStack_240;\n                    (pdVar12 + iVar44 * 2)[1] = dStack_238;\n                    pdVar12[iVar44 * 2 + 2] = dStack_278;\n                    (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }" { (expression_statement "pdVar28 = pdVar11 + iVar46 * 2;" (assignment_expression "pdVar28 = pdVar11 + iVar46 * 2" identifier = (binary_expression "pdVar11 + iVar46 * 2" identifier + (binary_expression "iVar46 * 2" identifier * number_literal))) ;) (expression_statement "pdVar12[iVar44 * 2] = dStack_240;" (assignment_expression "pdVar12[iVar44 * 2] = dStack_240" (subscript_expression "pdVar12[iVar44 * 2]" identifier [ (binary_expression "iVar44 * 2" identifier * number_literal) ]) = identifier) ;) (expression_statement "(pdVar12 + iVar44 * 2)[1] = dStack_238;" (assignment_expression "(pdVar12 + iVar44 * 2)[1] = dStack_238" (subscript_expression "(pdVar12 + iVar44 * 2)[1]" (parenthesized_expression "(pdVar12 + iVar44 * 2)" ( (binary_expression "pdVar12 + iVar44 * 2" identifier + (binary_expression "iVar44 * 2" identifier * number_literal)) )) [ number_literal ]) = identifier) ;) (expression_statement "pdVar12[iVar44 * 2 + 2] = dStack_278;" (assignment_expression "pdVar12[iVar44 * 2 + 2] = dStack_278" (subscript_expression "pdVar12[iVar44 * 2 + 2]" identifier [ (binary_expression "iVar44 * 2 + 2" (binary_expression "iVar44 * 2" identifier * number_literal) + number_literal) ]) = identifier) ;) (expression_statement "(pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;" (assignment_expression "(pdVar12 + iVar44 * 2 + 2)[1] = dStack_270" (subscript_expression "(pdVar12 + iVar44 * 2 + 2)[1]" (parenthesized_expression "(pdVar12 + iVar44 * 2 + 2)" ( (binary_expression "pdVar12 + iVar44 * 2 + 2" (binary_expression "pdVar12 + iVar44 * 2" identifier + (binary_expression "iVar44 * 2" identifier * number_literal)) + number_literal) )) [ number_literal ]) = identifier) ;) (if_statement "if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }" if (parenthesized_expression "((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57)" ( (binary_expression "(dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57" (binary_expression "(dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73)" (binary_expression "(dVar58 - dVar69) * (dVar58 - dVar69)" (parenthesized_expression "(dVar58 - dVar69)" ( (binary_expression "dVar58 - dVar69" identifier - identifier) )) * (parenthesized_expression "(dVar58 - dVar69)" ( (binary_expression "dVar58 - dVar69" identifier - identifier) ))) + (binary_expression "(dVar55 - dVar73) * (dVar55 - dVar73)" (parenthesized_expression "(dVar55 - dVar73)" ( (binary_expression "dVar55 - dVar73" identifier - identifier) )) * (parenthesized_expression "(dVar55 - dVar73)" ( (binary_expression "dVar55 - dVar73" identifier - identifier) )))) <= identifier) )) (compound_statement "{\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 1;\n                    }" { (expression_statement "*pdVar28 = dVar69;" (assignment_expression "*pdVar28 = dVar69" (pointer_expression "*pdVar28" * identifier) = identifier) ;) (expression_statement "pdVar28[1] = dVar73;" (assignment_expression "pdVar28[1] = dVar73" (subscript_expression "pdVar28[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "dStack_258 = dVar59;" (assignment_expression "dStack_258 = dVar59" identifier = identifier) ;) (expression_statement "dStack_260 = dVar60;" (assignment_expression "dStack_260 = dVar60" identifier = identifier) ;) (expression_statement "dVar67 = dStack_2a0;" (assignment_expression "dVar67 = dStack_2a0" identifier = identifier) ;) (expression_statement "dVar68 = dStack_2a8;" (assignment_expression "dVar68 = dStack_2a8" identifier = identifier) ;) (expression_statement "dVar70 = dStack_2b0;" (assignment_expression "dVar70 = dStack_2b0" identifier = identifier) ;) (expression_statement "dVar74 = dStack_2b8;" (assignment_expression "dVar74 = dStack_2b8" identifier = identifier) ;) (expression_statement "iVar44 = iVar44 + 2;" (assignment_expression "iVar44 = iVar44 + 2" identifier = (binary_expression "iVar44 + 2" identifier + number_literal)) ;) (expression_statement "iVar46 = iVar46 + 1;" (assignment_expression "iVar46 = iVar46 + 1" identifier = (binary_expression "iVar46 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }" else (compound_statement "{\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }" { (expression_statement "*pdVar28 = dStack_250;" (assignment_expression "*pdVar28 = dStack_250" (pointer_expression "*pdVar28" * identifier) = identifier) ;) (expression_statement "pdVar28[1] = dStack_248;" (assignment_expression "pdVar28[1] = dStack_248" (subscript_expression "pdVar28[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pdVar11[iVar46 * 2 + 2] = dStack_288;" (assignment_expression "pdVar11[iVar46 * 2 + 2] = dStack_288" (subscript_expression "pdVar11[iVar46 * 2 + 2]" identifier [ (binary_expression "iVar46 * 2 + 2" (binary_expression "iVar46 * 2" identifier * number_literal) + number_literal) ]) = identifier) ;) (expression_statement "(pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;" (assignment_expression "(pdVar11 + iVar46 * 2 + 2)[1] = dStack_280" (subscript_expression "(pdVar11 + iVar46 * 2 + 2)[1]" (parenthesized_expression "(pdVar11 + iVar46 * 2 + 2)" ( (binary_expression "pdVar11 + iVar46 * 2 + 2" (binary_expression "pdVar11 + iVar46 * 2" identifier + (binary_expression "iVar46 * 2" identifier * number_literal)) + number_literal) )) [ number_literal ]) = identifier) ;) (expression_statement "dStack_258 = dVar59;" (assignment_expression "dStack_258 = dVar59" identifier = identifier) ;) (expression_statement "dStack_260 = dVar60;" (assignment_expression "dStack_260 = dVar60" identifier = identifier) ;) (expression_statement "dVar67 = dStack_2a0;" (assignment_expression "dVar67 = dStack_2a0" identifier = identifier) ;) (expression_statement "dVar68 = dStack_2a8;" (assignment_expression "dVar68 = dStack_2a8" identifier = identifier) ;) (expression_statement "dVar70 = dStack_2b0;" (assignment_expression "dVar70 = dStack_2b0" identifier = identifier) ;) (expression_statement "dVar74 = dStack_2b8;" (assignment_expression "dVar74 = dStack_2b8" identifier = identifier) ;) (expression_statement "iVar44 = iVar44 + 2;" (assignment_expression "iVar44 = iVar44 + 2" identifier = (binary_expression "iVar44 + 2" identifier + number_literal)) ;) (expression_statement "iVar46 = iVar46 + 2;" (assignment_expression "iVar46 = iVar46 + 2" identifier = (binary_expression "iVar46 + 2" identifier + number_literal)) ;) }))) }) (else_clause "else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if (dVar57 < (dVar58 - dVar69) * (dVar58 - dVar69) +\n                                   (dVar55 - dVar73) * (dVar55 - dVar73)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar44 = iVar44 + 1;\n                      iVar46 = iVar46 + 1;\n                      *pdVar43 = dVar58;\n                      pdVar43[1] = dVar55;\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                    }\n                  }" else (compound_statement "{\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if (dVar57 < (dVar58 - dVar69) * (dVar58 - dVar69) +\n                                   (dVar55 - dVar73) * (dVar55 - dVar73)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar44 = iVar44 + 1;\n                      iVar46 = iVar46 + 1;\n                      *pdVar43 = dVar58;\n                      pdVar43[1] = dVar55;\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                    }\n                  }" { (expression_statement "dStack_258 = dVar59;" (assignment_expression "dStack_258 = dVar59" identifier = identifier) ;) (expression_statement "dStack_260 = dVar60;" (assignment_expression "dStack_260 = dVar60" identifier = identifier) ;) (expression_statement "dVar67 = dStack_2a0;" (assignment_expression "dVar67 = dStack_2a0" identifier = identifier) ;) (expression_statement "dVar68 = dStack_2a8;" (assignment_expression "dVar68 = dStack_2a8" identifier = identifier) ;) (expression_statement "dVar70 = dStack_2b0;" (assignment_expression "dVar70 = dStack_2b0" identifier = identifier) ;) (expression_statement "dVar74 = dStack_2b8;" (assignment_expression "dVar74 = dStack_2b8" identifier = identifier) ;) (if_statement "if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if (dVar57 < (dVar58 - dVar69) * (dVar58 - dVar69) +\n                                   (dVar55 - dVar73) * (dVar55 - dVar73)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar44 = iVar44 + 1;\n                      iVar46 = iVar46 + 1;\n                      *pdVar43 = dVar58;\n                      pdVar43[1] = dVar55;\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                    }" if (parenthesized_expression "(LVar14 == MiterJoin)" ( (binary_expression "LVar14 == MiterJoin" identifier == identifier) )) (compound_statement "{\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if (dVar57 < (dVar58 - dVar69) * (dVar58 - dVar69) +\n                                   (dVar55 - dVar73) * (dVar55 - dVar73)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar44 = iVar44 + 1;\n                      iVar46 = iVar46 + 1;\n                      *pdVar43 = dVar58;\n                      pdVar43[1] = dVar55;\n                      *pdVar28 = dVar69;\n                      pdVar28[1] = dVar73;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                    }" { (expression_statement "pdVar28 = pdVar11 + iVar46 * 2;" (assignment_expression "pdVar28 = pdVar11 + iVar46 * 2" identifier = (binary_expression "pdVar11 + iVar46 * 2" identifier + (binary_expression "iVar46 * 2" identifier * number_literal))) ;) (expression_statement "pdVar43 = pdVar12 + iVar44 * 2;" (assignment_expression "pdVar43 = pdVar12 + iVar44 * 2" identifier = (binary_expression "pdVar12 + iVar44 * 2" identifier + (binary_expression "iVar44 * 2" identifier * number_literal))) ;) (if_statement "if (dVar57 < (dVar58 - dVar69) * (dVar58 - dVar69) +\n                                   (dVar55 - dVar73) * (dVar55 - dVar73)) goto LAB_000a607c;" if (parenthesized_expression "(dVar57 < (dVar58 - dVar69) * (dVar58 - dVar69) +\n                                   (dVar55 - dVar73) * (dVar55 - dVar73))" ( (binary_expression "dVar57 < (dVar58 - dVar69) * (dVar58 - dVar69) +\n                                   (dVar55 - dVar73) * (dVar55 - dVar73)" identifier < (binary_expression "(dVar58 - dVar69) * (dVar58 - dVar69) +\n                                   (dVar55 - dVar73) * (dVar55 - dVar73)" (binary_expression "(dVar58 - dVar69) * (dVar58 - dVar69)" (parenthesized_expression "(dVar58 - dVar69)" ( (binary_expression "dVar58 - dVar69" identifier - identifier) )) * (parenthesized_expression "(dVar58 - dVar69)" ( (binary_expression "dVar58 - dVar69" identifier - identifier) ))) + (binary_expression "(dVar55 - dVar73) * (dVar55 - dVar73)" (parenthesized_expression "(dVar55 - dVar73)" ( (binary_expression "dVar55 - dVar73" identifier - identifier) )) * (parenthesized_expression "(dVar55 - dVar73)" ( (binary_expression "dVar55 - dVar73" identifier - identifier) ))))) )) (goto_statement "goto LAB_000a607c;" goto statement_identifier ;)) (labeled_statement "LAB_000a58dc:\n                      iVar44 = iVar44 + 1;" statement_identifier : (expression_statement "iVar44 = iVar44 + 1;" (assignment_expression "iVar44 = iVar44 + 1" identifier = (binary_expression "iVar44 + 1" identifier + number_literal)) ;)) (expression_statement "iVar46 = iVar46 + 1;" (assignment_expression "iVar46 = iVar46 + 1" identifier = (binary_expression "iVar46 + 1" identifier + number_literal)) ;) (expression_statement "*pdVar43 = dVar58;" (assignment_expression "*pdVar43 = dVar58" (pointer_expression "*pdVar43" * identifier) = identifier) ;) (expression_statement "pdVar43[1] = dVar55;" (assignment_expression "pdVar43[1] = dVar55" (subscript_expression "pdVar43[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*pdVar28 = dVar69;" (assignment_expression "*pdVar28 = dVar69" (pointer_expression "*pdVar28" * identifier) = identifier) ;) (expression_statement "pdVar28[1] = dVar73;" (assignment_expression "pdVar28[1] = dVar73" (subscript_expression "pdVar28[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "dStack_258 = dVar59;" (assignment_expression "dStack_258 = dVar59" identifier = identifier) ;) (expression_statement "dStack_260 = dVar60;" (assignment_expression "dStack_260 = dVar60" identifier = identifier) ;) (expression_statement "dVar67 = dStack_2a0;" (assignment_expression "dVar67 = dStack_2a0" identifier = identifier) ;) (expression_statement "dVar68 = dStack_2a8;" (assignment_expression "dVar68 = dStack_2a8" identifier = identifier) ;) (expression_statement "dVar70 = dStack_2b0;" (assignment_expression "dVar70 = dStack_2b0" identifier = identifier) ;) (expression_statement "dVar74 = dStack_2b8;" (assignment_expression "dVar74 = dStack_2b8" identifier = identifier) ;) })) }))) (goto_statement "goto joined_r0x000a5a50;" goto statement_identifier ;) })) (expression_statement "iVar30 = iVar46 + 1;" (assignment_expression "iVar30 = iVar46 + 1" identifier = (binary_expression "iVar46 + 1" identifier + number_literal)) ;) (expression_statement "pdVar43 = pdVar11 + iVar46 * 2;" (assignment_expression "pdVar43 = pdVar11 + iVar46 * 2" identifier = (binary_expression "pdVar11 + iVar46 * 2" identifier + (binary_expression "iVar46 * 2" identifier * number_literal))) ;) (if_statement "if ((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57) {\n                  *pdVar43 = dVar69;\n                  pdVar43[1] = dVar73;\n                }\n                else {\n                  iVar30 = iVar46 + 2;\n                  *pdVar43 = dStack_250;\n                  pdVar43[1] = dStack_248;\n                  pdVar11[iVar46 * 2 + 2] = dStack_288;\n                  (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                }" if (parenthesized_expression "((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57)" ( (binary_expression "(dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57" (binary_expression "(dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73)" (binary_expression "(dVar58 - dVar69) * (dVar58 - dVar69)" (parenthesized_expression "(dVar58 - dVar69)" ( (binary_expression "dVar58 - dVar69" identifier - identifier) )) * (parenthesized_expression "(dVar58 - dVar69)" ( (binary_expression "dVar58 - dVar69" identifier - identifier) ))) + (binary_expression "(dVar55 - dVar73) * (dVar55 - dVar73)" (parenthesized_expression "(dVar55 - dVar73)" ( (binary_expression "dVar55 - dVar73" identifier - identifier) )) * (parenthesized_expression "(dVar55 - dVar73)" ( (binary_expression "dVar55 - dVar73" identifier - identifier) )))) <= identifier) )) (compound_statement "{\n                  *pdVar43 = dVar69;\n                  pdVar43[1] = dVar73;\n                }" { (expression_statement "*pdVar43 = dVar69;" (assignment_expression "*pdVar43 = dVar69" (pointer_expression "*pdVar43" * identifier) = identifier) ;) (expression_statement "pdVar43[1] = dVar73;" (assignment_expression "pdVar43[1] = dVar73" (subscript_expression "pdVar43[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  iVar30 = iVar46 + 2;\n                  *pdVar43 = dStack_250;\n                  pdVar43[1] = dStack_248;\n                  pdVar11[iVar46 * 2 + 2] = dStack_288;\n                  (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                }" else (compound_statement "{\n                  iVar30 = iVar46 + 2;\n                  *pdVar43 = dStack_250;\n                  pdVar43[1] = dStack_248;\n                  pdVar11[iVar46 * 2 + 2] = dStack_288;\n                  (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                }" { (expression_statement "iVar30 = iVar46 + 2;" (assignment_expression "iVar30 = iVar46 + 2" identifier = (binary_expression "iVar46 + 2" identifier + number_literal)) ;) (expression_statement "*pdVar43 = dStack_250;" (assignment_expression "*pdVar43 = dStack_250" (pointer_expression "*pdVar43" * identifier) = identifier) ;) (expression_statement "pdVar43[1] = dStack_248;" (assignment_expression "pdVar43[1] = dStack_248" (subscript_expression "pdVar43[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pdVar11[iVar46 * 2 + 2] = dStack_288;" (assignment_expression "pdVar11[iVar46 * 2 + 2] = dStack_288" (subscript_expression "pdVar11[iVar46 * 2 + 2]" identifier [ (binary_expression "iVar46 * 2 + 2" (binary_expression "iVar46 * 2" identifier * number_literal) + number_literal) ]) = identifier) ;) (expression_statement "(pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;" (assignment_expression "(pdVar11 + iVar46 * 2 + 2)[1] = dStack_280" (subscript_expression "(pdVar11 + iVar46 * 2 + 2)[1]" (parenthesized_expression "(pdVar11 + iVar46 * 2 + 2)" ( (binary_expression "pdVar11 + iVar46 * 2 + 2" (binary_expression "pdVar11 + iVar46 * 2" identifier + (binary_expression "iVar46 * 2" identifier * number_literal)) + number_literal) )) [ number_literal ]) = identifier) ;) }))) (expression_statement "dVar69 = *pdVar28;" (assignment_expression "dVar69 = *pdVar28" identifier = (pointer_expression "*pdVar28" * identifier)) ;) (expression_statement "dVar68 = pdVar28[1];" (assignment_expression "dVar68 = pdVar28[1]" identifier = (subscript_expression "pdVar28[1]" identifier [ number_literal ])) ;) (expression_statement "dVar63 = dVar68;" (assignment_expression "dVar63 = dVar68" identifier = identifier) ;) (expression_statement "dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_238 - dVar68,dStack_240 - dVar69);" (assignment_expression "dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_238 - dVar68,dStack_240 - dVar69)" identifier = (cast_expression "(double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_238 - dVar68,dStack_240 - dVar69)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_238 - dVar68,dStack_240 - dVar69)" (parenthesized_expression "(**(code **)(puVar47 + 0x3042f8))" ( (pointer_expression "**(code **)(puVar47 + 0x3042f8)" * (pointer_expression "*(code **)(puVar47 + 0x3042f8)" * (cast_expression "(code **)(puVar47 + 0x3042f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3042f8)" ( (binary_expression "puVar47 + 0x3042f8" identifier + number_literal) ))))) )) (argument_list "(dStack_238 - dVar68,dStack_240 - dVar69)" ( (binary_expression "dStack_238 - dVar68" identifier - identifier) , (binary_expression "dStack_240 - dVar69" identifier - identifier) ))))) ;) (expression_statement "dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_270 - dVar63,dStack_278 - dVar69);" (assignment_expression "dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_270 - dVar63,dStack_278 - dVar69)" identifier = (cast_expression "(double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_270 - dVar63,dStack_278 - dVar69)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_270 - dVar63,dStack_278 - dVar69)" (parenthesized_expression "(**(code **)(puVar47 + 0x3042f8))" ( (pointer_expression "**(code **)(puVar47 + 0x3042f8)" * (pointer_expression "*(code **)(puVar47 + 0x3042f8)" * (cast_expression "(code **)(puVar47 + 0x3042f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3042f8)" ( (binary_expression "puVar47 + 0x3042f8" identifier + number_literal) ))))) )) (argument_list "(dStack_270 - dVar63,dStack_278 - dVar69)" ( (binary_expression "dStack_270 - dVar63" identifier - identifier) , (binary_expression "dStack_278 - dVar69" identifier - identifier) ))))) ;) (if_statement "if (dVar63 < dVar67) {\n                  dVar63 = dVar63 + *(double *)(iVar26 + 0x34a0);\n                }" if (parenthesized_expression "(dVar63 < dVar67)" ( (binary_expression "dVar63 < dVar67" identifier < identifier) )) (compound_statement "{\n                  dVar63 = dVar63 + *(double *)(iVar26 + 0x34a0);\n                }" { (expression_statement "dVar63 = dVar63 + *(double *)(iVar26 + 0x34a0);" (assignment_expression "dVar63 = dVar63 + *(double *)(iVar26 + 0x34a0)" identifier = (binary_expression "dVar63 + *(double *)(iVar26 + 0x34a0)" identifier + (pointer_expression "*(double *)(iVar26 + 0x34a0)" * (cast_expression "(double *)(iVar26 + 0x34a0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x34a0)" ( (binary_expression "iVar26 + 0x34a0" identifier + number_literal) )))))) ;) })) (expression_statement "dVar63 = dVar63 - dVar67;" (assignment_expression "dVar63 = dVar63 - dVar67" identifier = (binary_expression "dVar63 - dVar67" identifier - identifier)) ;) (expression_statement "dVar73 = *(double *)(iVar13 + 0x1438) / dVar53;" (assignment_expression "dVar73 = *(double *)(iVar13 + 0x1438) / dVar53" identifier = (binary_expression "*(double *)(iVar13 + 0x1438) / dVar53" (pointer_expression "*(double *)(iVar13 + 0x1438)" * (cast_expression "(double *)(iVar13 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x1438)" ( (binary_expression "iVar13 + 0x1438" identifier + number_literal) )))) / identifier)) ;) (expression_statement "dVar70 = SQRT(dVar73);" (assignment_expression "dVar70 = SQRT(dVar73)" identifier = (call_expression "SQRT(dVar73)" identifier (argument_list "(dVar73)" ( identifier )))) ;) (if_statement "if (dVar73 < 0.0) {\n                  (**(code **)(puVar47 + 0x304770))();\n                }" if (parenthesized_expression "(dVar73 < 0.0)" ( (binary_expression "dVar73 < 0.0" identifier < number_literal) )) (compound_statement "{\n                  (**(code **)(puVar47 + 0x304770))();\n                }" { (expression_statement "(**(code **)(puVar47 + 0x304770))();" (call_expression "(**(code **)(puVar47 + 0x304770))()" (parenthesized_expression "(**(code **)(puVar47 + 0x304770))" ( (pointer_expression "**(code **)(puVar47 + 0x304770)" * (pointer_expression "*(code **)(puVar47 + 0x304770)" * (cast_expression "(code **)(puVar47 + 0x304770)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x304770)" ( (binary_expression "puVar47 + 0x304770" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar63 / (dVar70 + dVar70));" (assignment_expression "dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar63 / (dVar70 + dVar70))" identifier = (cast_expression "(double)(**(code **)(puVar47 + 0x303f10))(dVar63 / (dVar70 + dVar70))" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar47 + 0x303f10))(dVar63 / (dVar70 + dVar70))" (parenthesized_expression "(**(code **)(puVar47 + 0x303f10))" ( (pointer_expression "**(code **)(puVar47 + 0x303f10)" * (pointer_expression "*(code **)(puVar47 + 0x303f10)" * (cast_expression "(code **)(puVar47 + 0x303f10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x303f10)" ( (binary_expression "puVar47 + 0x303f10" identifier + number_literal) ))))) )) (argument_list "(dVar63 / (dVar70 + dVar70))" ( (binary_expression "dVar63 / (dVar70 + dVar70)" identifier / (parenthesized_expression "(dVar70 + dVar70)" ( (binary_expression "dVar70 + dVar70" identifier + identifier) ))) ))))) ;) (expression_statement "dVar70 = *(double *)(iVar22 + 0x1410);" (assignment_expression "dVar70 = *(double *)(iVar22 + 0x1410)" identifier = (pointer_expression "*(double *)(iVar22 + 0x1410)" * (cast_expression "(double *)(iVar22 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x1410)" ( (binary_expression "iVar22 + 0x1410" identifier + number_literal) ))))) ;) (if_statement "if (dVar73 < dVar70) {\n                  uVar42 = (uint)dVar73;\n                }\n                else {\n                  uVar42 = (int)(dVar73 - dVar70) | 0x80000000;\n                }" if (parenthesized_expression "(dVar73 < dVar70)" ( (binary_expression "dVar73 < dVar70" identifier < identifier) )) (compound_statement "{\n                  uVar42 = (uint)dVar73;\n                }" { (expression_statement "uVar42 = (uint)dVar73;" (assignment_expression "uVar42 = (uint)dVar73" identifier = (cast_expression "(uint)dVar73" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                  uVar42 = (int)(dVar73 - dVar70) | 0x80000000;\n                }" else (compound_statement "{\n                  uVar42 = (int)(dVar73 - dVar70) | 0x80000000;\n                }" { (expression_statement "uVar42 = (int)(dVar73 - dVar70) | 0x80000000;" (assignment_expression "uVar42 = (int)(dVar73 - dVar70) | 0x80000000" identifier = (binary_expression "(int)(dVar73 - dVar70) | 0x80000000" (cast_expression "(int)(dVar73 - dVar70)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar73 - dVar70)" ( (binary_expression "dVar73 - dVar70" identifier - identifier) ))) | number_literal)) ;) }))) (if_statement "if ((int)uStack_22c <= iVar30 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar46 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar11,iVar46,0x10);\n                  }\n                  else {\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  }\n                }" if (parenthesized_expression "((int)uStack_22c <= iVar30 + 0x618)" ( (binary_expression "(int)uStack_22c <= iVar30 + 0x618" (cast_expression "(int)uStack_22c" ( (type_descriptor "int" primitive_type) ) identifier) <= (binary_expression "iVar30 + 0x618" identifier + number_literal)) )) (compound_statement "{\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar46 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar11,iVar46,0x10);\n                  }\n                  else {\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  }\n                }" { (if_statement "if (uStack_22c < 0xfffff9e8) {\n                    iVar46 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar11,iVar46,0x10);\n                  }\n                  else {\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  }" if (parenthesized_expression "(uStack_22c < 0xfffff9e8)" ( (binary_expression "uStack_22c < 0xfffff9e8" identifier < number_literal) )) (compound_statement "{\n                    iVar46 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar11,iVar46,0x10);\n                  }" { (expression_statement "iVar46 = uStack_22c + 0xc30;" (assignment_expression "iVar46 = uStack_22c + 0xc30" identifier = (binary_expression "uStack_22c + 0xc30" identifier + number_literal)) ;) (expression_statement "uStack_22c = uStack_22c + 0x618;" (assignment_expression "uStack_22c = uStack_22c + 0x618" identifier = (binary_expression "uStack_22c + 0x618" identifier + number_literal)) ;) (expression_statement "pdVar11 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar11,iVar46,0x10);" (assignment_expression "pdVar11 = (double *)(**(code **)(puVar47 + 0x304710))(pdVar11,iVar46,0x10)" identifier = (cast_expression "(double *)(**(code **)(puVar47 + 0x304710))(pdVar11,iVar46,0x10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar47 + 0x304710))(pdVar11,iVar46,0x10)" (parenthesized_expression "(**(code **)(puVar47 + 0x304710))" ( (pointer_expression "**(code **)(puVar47 + 0x304710)" * (pointer_expression "*(code **)(puVar47 + 0x304710)" * (cast_expression "(code **)(puVar47 + 0x304710)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x304710)" ( (binary_expression "puVar47 + 0x304710" identifier + number_literal) ))))) )) (argument_list "(pdVar11,iVar46,0x10)" ( identifier , identifier , number_literal ))))) ;) }) (else_clause "else {\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  }" else (compound_statement "{\n                    pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                  }" { (expression_statement "pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11);" (assignment_expression "pdVar11 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11)" identifier = (cast_expression "(double *)(**(code **)(puVar47 + 0x3042b0))(pdVar11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar47 + 0x3042b0))(pdVar11)" (parenthesized_expression "(**(code **)(puVar47 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar47 + 0x3042b0)" * (pointer_expression "*(code **)(puVar47 + 0x3042b0)" * (cast_expression "(code **)(puVar47 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3042b0)" ( (binary_expression "puVar47 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar11)" ( identifier ))))) ;) }))) })) (if_statement "if (uVar42 + 0x618 < 0x4000001) {\n                  if ((int)uVar10 <= (int)(iVar44 + 0x618 + uVar42)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uVar10 < uVar42 + 0x618) goto LAB_000a67d4;\n                    iVar46 = uVar42 + uVar10;\n                    uVar10 = iVar46 + 0x618;\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,iVar46 + 0xc30,0x10);\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar11 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a6d2c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar12 = (double *)(*pcVar48)(pdVar12);\nLAB_000a64c4:\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a6884;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a6d2c;\n                  }\n                }" if (parenthesized_expression "(uVar42 + 0x618 < 0x4000001)" ( (binary_expression "uVar42 + 0x618 < 0x4000001" (binary_expression "uVar42 + 0x618" identifier + number_literal) < number_literal) )) (compound_statement "{\n                  if ((int)uVar10 <= (int)(iVar44 + 0x618 + uVar42)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uVar10 < uVar42 + 0x618) goto LAB_000a67d4;\n                    iVar46 = uVar42 + uVar10;\n                    uVar10 = iVar46 + 0x618;\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,iVar46 + 0xc30,0x10);\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar11 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a6d2c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }" { (if_statement "if ((int)uVar10 <= (int)(iVar44 + 0x618 + uVar42)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uVar10 < uVar42 + 0x618) goto LAB_000a67d4;\n                    iVar46 = uVar42 + uVar10;\n                    uVar10 = iVar46 + 0x618;\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,iVar46 + 0xc30,0x10);\n                    goto LAB_000a64c4;\n                  }" if (parenthesized_expression "((int)uVar10 <= (int)(iVar44 + 0x618 + uVar42))" ( (binary_expression "(int)uVar10 <= (int)(iVar44 + 0x618 + uVar42)" (cast_expression "(int)uVar10" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)(iVar44 + 0x618 + uVar42)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar44 + 0x618 + uVar42)" ( (binary_expression "iVar44 + 0x618 + uVar42" (binary_expression "iVar44 + 0x618" identifier + number_literal) + identifier) )))) )) (compound_statement "{\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uVar10 < uVar42 + 0x618) goto LAB_000a67d4;\n                    iVar46 = uVar42 + uVar10;\n                    uVar10 = iVar46 + 0x618;\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,iVar46 + 0xc30,0x10);\n                    goto LAB_000a64c4;\n                  }" { (expression_statement "pcVar48 = *(code **)(puVar47 + 0x3042b0);" (assignment_expression "pcVar48 = *(code **)(puVar47 + 0x3042b0)" identifier = (pointer_expression "*(code **)(puVar47 + 0x3042b0)" * (cast_expression "(code **)(puVar47 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3042b0)" ( (binary_expression "puVar47 + 0x3042b0" identifier + number_literal) ))))) ;) (if_statement "if (~uVar10 < uVar42 + 0x618) goto LAB_000a67d4;" if (parenthesized_expression "(~uVar10 < uVar42 + 0x618)" ( (binary_expression "~uVar10 < uVar42 + 0x618" (unary_expression "~uVar10" ~ identifier) < (binary_expression "uVar42 + 0x618" identifier + number_literal)) )) (goto_statement "goto LAB_000a67d4;" goto statement_identifier ;)) (expression_statement "iVar46 = uVar42 + uVar10;" (assignment_expression "iVar46 = uVar42 + uVar10" identifier = (binary_expression "uVar42 + uVar10" identifier + identifier)) ;) (expression_statement "uVar10 = iVar46 + 0x618;" (assignment_expression "uVar10 = iVar46 + 0x618" identifier = (binary_expression "iVar46 + 0x618" identifier + number_literal)) ;) (expression_statement "pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,iVar46 + 0xc30,0x10);" (assignment_expression "pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,iVar46 + 0xc30,0x10)" identifier = (cast_expression "(double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,iVar46 + 0xc30,0x10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar47 + 0x304710))(pdVar12,iVar46 + 0xc30,0x10)" (parenthesized_expression "(**(code **)(puVar47 + 0x304710))" ( (pointer_expression "**(code **)(puVar47 + 0x304710)" * (pointer_expression "*(code **)(puVar47 + 0x304710)" * (cast_expression "(code **)(puVar47 + 0x304710)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x304710)" ( (binary_expression "puVar47 + 0x304710" identifier + number_literal) ))))) )) (argument_list "(pdVar12,iVar46 + 0xc30,0x10)" ( identifier , (binary_expression "iVar46 + 0xc30" identifier + number_literal) , number_literal ))))) ;) (goto_statement "goto LAB_000a64c4;" goto statement_identifier ;) })) (if_statement "if (pdVar11 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a6d2c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }" if (parenthesized_expression "(pdVar11 == (double *)0x0)" ( (binary_expression "pdVar11 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000a6884:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a6d2c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }" { (labeled_statement "LAB_000a6884:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);" statement_identifier : (expression_statement "(**(code **)(puVar47 + 0x3042b0))(pdVar12);" (call_expression "(**(code **)(puVar47 + 0x3042b0))(pdVar12)" (parenthesized_expression "(**(code **)(puVar47 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar47 + 0x3042b0)" * (pointer_expression "*(code **)(puVar47 + 0x3042b0)" * (cast_expression "(code **)(puVar47 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3042b0)" ( (binary_expression "puVar47 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar12)" ( identifier ))) ;)) (labeled_statement "LAB_000a6d2c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);" statement_identifier : (expression_statement "pcVar48 = *(code **)(puVar47 + 0x3042b0);" (assignment_expression "pcVar48 = *(code **)(puVar47 + 0x3042b0)" identifier = (pointer_expression "*(code **)(puVar47 + 0x3042b0)" * (cast_expression "(code **)(puVar47 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3042b0)" ( (binary_expression "puVar47 + 0x3042b0" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_000a6d30;" goto statement_identifier ;) })) }) (else_clause "else {\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar12 = (double *)(*pcVar48)(pdVar12);\nLAB_000a64c4:\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a6884;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a6d2c;\n                  }\n                }" else (compound_statement "{\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar12 = (double *)(*pcVar48)(pdVar12);\nLAB_000a64c4:\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a6884;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a6d2c;\n                  }\n                }" { (expression_statement "pcVar48 = *(code **)(puVar47 + 0x3042b0);" (assignment_expression "pcVar48 = *(code **)(puVar47 + 0x3042b0)" identifier = (pointer_expression "*(code **)(puVar47 + 0x3042b0)" * (cast_expression "(code **)(puVar47 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3042b0)" ( (binary_expression "puVar47 + 0x3042b0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000a67d4:\n                  pdVar12 = (double *)(*pcVar48)(pdVar12);" statement_identifier : (expression_statement "pdVar12 = (double *)(*pcVar48)(pdVar12);" (assignment_expression "pdVar12 = (double *)(*pcVar48)(pdVar12)" identifier = (cast_expression "(double *)(*pcVar48)(pdVar12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar48)(pdVar12)" (parenthesized_expression "(*pcVar48)" ( (pointer_expression "*pcVar48" * identifier) )) (argument_list "(pdVar12)" ( identifier ))))) ;)) (labeled_statement "LAB_000a64c4:\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a6884;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }" statement_identifier : (if_statement "if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a6884;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }" if (parenthesized_expression "(pdVar11 == (double *)0x0)" ( (binary_expression "pdVar11 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    if (pdVar12 != (double *)0x0) goto LAB_000a6884;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }" { (if_statement "if (pdVar12 != (double *)0x0) goto LAB_000a6884;" if (parenthesized_expression "(pdVar12 != (double *)0x0)" ( (binary_expression "pdVar12 != (double *)0x0" identifier != (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000a6884;" goto statement_identifier ;)) (expression_statement "pcVar48 = *(code **)(puVar47 + 0x3042b0);" (assignment_expression "pcVar48 = *(code **)(puVar47 + 0x3042b0)" identifier = (pointer_expression "*(code **)(puVar47 + 0x3042b0)" * (cast_expression "(code **)(puVar47 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3042b0)" ( (binary_expression "puVar47 + 0x3042b0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000a6d30:\n                    (*pcVar48)(pdVar9);" statement_identifier : (expression_statement "(*pcVar48)(pdVar9);" (call_expression "(*pcVar48)(pdVar9)" (parenthesized_expression "(*pcVar48)" ( (pointer_expression "*pcVar48" * identifier) )) (argument_list "(pdVar9)" ( identifier ))) ;)) (expression_statement "uVar37 = 0x1d4f;" (assignment_expression "uVar37 = 0x1d4f" identifier = number_literal) ;) (goto_statement "goto LAB_000a5724;" goto statement_identifier ;) }))) (if_statement "if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a6d2c;\n                  }" if (parenthesized_expression "(pdVar12 == (double *)0x0)" ( (binary_expression "pdVar12 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a6d2c;\n                  }" { (expression_statement "(**(code **)(puVar47 + 0x3042b0))(pdVar11);" (call_expression "(**(code **)(puVar47 + 0x3042b0))(pdVar11)" (parenthesized_expression "(**(code **)(puVar47 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar47 + 0x3042b0)" * (pointer_expression "*(code **)(puVar47 + 0x3042b0)" * (cast_expression "(code **)(puVar47 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3042b0)" ( (binary_expression "puVar47 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar11)" ( identifier ))) ;) (goto_statement "goto LAB_000a6d2c;" goto statement_identifier ;) })) }))) (expression_statement "pdVar28 = pdVar12 + iVar44 * 2;" (assignment_expression "pdVar28 = pdVar12 + iVar44 * 2" identifier = (binary_expression "pdVar12 + iVar44 * 2" identifier + (binary_expression "iVar44 * 2" identifier * number_literal))) ;) (expression_statement "*pdVar28 = dStack_240;" (assignment_expression "*pdVar28 = dStack_240" (pointer_expression "*pdVar28" * identifier) = identifier) ;) (expression_statement "pdVar28[1] = dStack_238;" (assignment_expression "pdVar28[1] = dStack_238" (subscript_expression "pdVar28[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (1 < (int)uVar42) {\n                  uVar71 = *(undefined8 *)(iVar26 + 0x34a0);\n                  uVar41 = 1;\n                  do {\n                    uVar45 = uVar41 + 1;\n                    dVar70 = ((double)(int)uVar41 * dVar63) / (double)(int)uVar42 + dVar67;\n                    uVar56 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar56);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar69;\n                    uVar56 = (*pcVar48)(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar56);\n                    pdVar28[3] = dVar53 * dVar73 + dVar68;\n                    uVar41 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar42);\n                }" if (parenthesized_expression "(1 < (int)uVar42)" ( (binary_expression "1 < (int)uVar42" number_literal < (cast_expression "(int)uVar42" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar71 = *(undefined8 *)(iVar26 + 0x34a0);\n                  uVar41 = 1;\n                  do {\n                    uVar45 = uVar41 + 1;\n                    dVar70 = ((double)(int)uVar41 * dVar63) / (double)(int)uVar42 + dVar67;\n                    uVar56 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar56);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar69;\n                    uVar56 = (*pcVar48)(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar56);\n                    pdVar28[3] = dVar53 * dVar73 + dVar68;\n                    uVar41 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar42);\n                }" { (expression_statement "uVar71 = *(undefined8 *)(iVar26 + 0x34a0);" (assignment_expression "uVar71 = *(undefined8 *)(iVar26 + 0x34a0)" identifier = (pointer_expression "*(undefined8 *)(iVar26 + 0x34a0)" * (cast_expression "(undefined8 *)(iVar26 + 0x34a0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x34a0)" ( (binary_expression "iVar26 + 0x34a0" identifier + number_literal) ))))) ;) (expression_statement "uVar41 = 1;" (assignment_expression "uVar41 = 1" identifier = number_literal) ;) (do_statement "do {\n                    uVar45 = uVar41 + 1;\n                    dVar70 = ((double)(int)uVar41 * dVar63) / (double)(int)uVar42 + dVar67;\n                    uVar56 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar56);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar69;\n                    uVar56 = (*pcVar48)(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar56);\n                    pdVar28[3] = dVar53 * dVar73 + dVar68;\n                    uVar41 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar42);" do (compound_statement "{\n                    uVar45 = uVar41 + 1;\n                    dVar70 = ((double)(int)uVar41 * dVar63) / (double)(int)uVar42 + dVar67;\n                    uVar56 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar56);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar69;\n                    uVar56 = (*pcVar48)(dVar70,uVar71);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar56);\n                    pdVar28[3] = dVar53 * dVar73 + dVar68;\n                    uVar41 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  }" { (expression_statement "uVar45 = uVar41 + 1;" (assignment_expression "uVar45 = uVar41 + 1" identifier = (binary_expression "uVar41 + 1" identifier + number_literal)) ;) (expression_statement "dVar70 = ((double)(int)uVar41 * dVar63) / (double)(int)uVar42 + dVar67;" (assignment_expression "dVar70 = ((double)(int)uVar41 * dVar63) / (double)(int)uVar42 + dVar67" identifier = (binary_expression "((double)(int)uVar41 * dVar63) / (double)(int)uVar42 + dVar67" (binary_expression "((double)(int)uVar41 * dVar63) / (double)(int)uVar42" (parenthesized_expression "((double)(int)uVar41 * dVar63)" ( (binary_expression "(double)(int)uVar41 * dVar63" (cast_expression "(double)(int)uVar41" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)uVar41" ( (type_descriptor "int" primitive_type) ) identifier)) * identifier) )) / (cast_expression "(double)(int)uVar42" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)uVar42" ( (type_descriptor "int" primitive_type) ) identifier))) + identifier)) ;) (expression_statement "uVar56 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar71);" (assignment_expression "uVar56 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar71)" identifier = (call_expression "(**(code **)(puVar47 + 0x304ca8))(dVar70,uVar71)" (parenthesized_expression "(**(code **)(puVar47 + 0x304ca8))" ( (pointer_expression "**(code **)(puVar47 + 0x304ca8)" * (pointer_expression "*(code **)(puVar47 + 0x304ca8)" * (cast_expression "(code **)(puVar47 + 0x304ca8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x304ca8)" ( (binary_expression "puVar47 + 0x304ca8" identifier + number_literal) ))))) )) (argument_list "(dVar70,uVar71)" ( identifier , identifier )))) ;) (expression_statement "dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar56);" (assignment_expression "dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar56)" identifier = (cast_expression "(double)(**(code **)(puVar47 + 0x304608))(uVar56)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar47 + 0x304608))(uVar56)" (parenthesized_expression "(**(code **)(puVar47 + 0x304608))" ( (pointer_expression "**(code **)(puVar47 + 0x304608)" * (pointer_expression "*(code **)(puVar47 + 0x304608)" * (cast_expression "(code **)(puVar47 + 0x304608)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x304608)" ( (binary_expression "puVar47 + 0x304608" identifier + number_literal) ))))) )) (argument_list "(uVar56)" ( identifier ))))) ;) (expression_statement "pcVar48 = *(code **)(puVar47 + 0x304ca8);" (assignment_expression "pcVar48 = *(code **)(puVar47 + 0x304ca8)" identifier = (pointer_expression "*(code **)(puVar47 + 0x304ca8)" * (cast_expression "(code **)(puVar47 + 0x304ca8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x304ca8)" ( (binary_expression "puVar47 + 0x304ca8" identifier + number_literal) ))))) ;) (expression_statement "pdVar28[2] = dVar53 * dVar73 + dVar69;" (assignment_expression "pdVar28[2] = dVar53 * dVar73 + dVar69" (subscript_expression "pdVar28[2]" identifier [ number_literal ]) = (binary_expression "dVar53 * dVar73 + dVar69" (binary_expression "dVar53 * dVar73" identifier * identifier) + identifier)) ;) (expression_statement "uVar56 = (*pcVar48)(dVar70,uVar71);" (assignment_expression "uVar56 = (*pcVar48)(dVar70,uVar71)" identifier = (call_expression "(*pcVar48)(dVar70,uVar71)" (parenthesized_expression "(*pcVar48)" ( (pointer_expression "*pcVar48" * identifier) )) (argument_list "(dVar70,uVar71)" ( identifier , identifier )))) ;) (expression_statement "dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar56);" (assignment_expression "dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar56)" identifier = (cast_expression "(double)(**(code **)(puVar47 + 0x304034))(uVar56)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar47 + 0x304034))(uVar56)" (parenthesized_expression "(**(code **)(puVar47 + 0x304034))" ( (pointer_expression "**(code **)(puVar47 + 0x304034)" * (pointer_expression "*(code **)(puVar47 + 0x304034)" * (cast_expression "(code **)(puVar47 + 0x304034)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x304034)" ( (binary_expression "puVar47 + 0x304034" identifier + number_literal) ))))) )) (argument_list "(uVar56)" ( identifier ))))) ;) (expression_statement "pdVar28[3] = dVar53 * dVar73 + dVar68;" (assignment_expression "pdVar28[3] = dVar53 * dVar73 + dVar68" (subscript_expression "pdVar28[3]" identifier [ number_literal ]) = (binary_expression "dVar53 * dVar73 + dVar68" (binary_expression "dVar53 * dVar73" identifier * identifier) + identifier)) ;) (expression_statement "uVar41 = uVar45;" (assignment_expression "uVar41 = uVar45" identifier = identifier) ;) (expression_statement "pdVar28 = pdVar28 + 2;" (assignment_expression "pdVar28 = pdVar28 + 2" identifier = (binary_expression "pdVar28 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar45 != uVar42)" ( (binary_expression "uVar45 != uVar42" identifier != identifier) )) ;) })) (expression_statement "*pdVar12 = dStack_278;" (assignment_expression "*pdVar12 = dStack_278" (pointer_expression "*pdVar12" * identifier) = identifier) ;) (expression_statement "pdVar12[1] = dStack_270;" (assignment_expression "pdVar12[1] = dStack_270" (subscript_expression "pdVar12[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "dStack_258 = dVar59;" (assignment_expression "dStack_258 = dVar59" identifier = identifier) ;) (expression_statement "dStack_260 = dVar60;" (assignment_expression "dStack_260 = dVar60" identifier = identifier) ;) (expression_statement "dVar67 = dStack_2a0;" (assignment_expression "dVar67 = dStack_2a0" identifier = identifier) ;) (expression_statement "dVar68 = dStack_2a8;" (assignment_expression "dVar68 = dStack_2a8" identifier = identifier) ;) (expression_statement "dVar70 = dStack_2b0;" (assignment_expression "dVar70 = dStack_2b0" identifier = identifier) ;) (expression_statement "dVar74 = dStack_2b8;" (assignment_expression "dVar74 = dStack_2b8" identifier = identifier) ;) (expression_statement "iVar44 = 1;" (assignment_expression "iVar44 = 1" identifier = number_literal) ;) (expression_statement "iVar46 = iVar30;" (assignment_expression "iVar46 = iVar30" identifier = identifier) ;) (expression_statement "dVar63 = dVar65;" (assignment_expression "dVar63 = dVar65" identifier = identifier) ;) }) (else_clause "else {\n                if (LVar14 != RoundJoin) {\n                  if (LVar14 == BevelJoin) {\n                    iVar30 = iVar46 * 2;\n                    iVar3 = iVar46 * 2;\n                    iVar46 = iVar46 + 2;\n                    pdVar11[iVar30] = dStack_250;\n                    (pdVar11 + iVar30)[1] = dStack_248;\n                    pdVar28 = pdVar12 + iVar44 * 2;\n                    pdVar11[iVar3 + 2] = dStack_288;\n                    (pdVar11 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar58;\n                      pdVar28[1] = dVar55;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_240;\n                      pdVar28[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                          (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar43 = dStack_240;\n                      pdVar43[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar30 = iVar44 + 1;\n                pdVar43 = pdVar12 + iVar44 * 2;\n                if ((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57) {\n                  *pdVar43 = dVar58;\n                  pdVar43[1] = dVar55;\n                }\n                else {\n                  iVar30 = iVar44 + 2;\n                  *pdVar43 = dStack_240;\n                  pdVar43[1] = dStack_238;\n                  pdVar12[iVar44 * 2 + 2] = dStack_278;\n                  (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                }\n                dVar68 = *pdVar28;\n                dVar69 = pdVar28[1];\n                dVar63 = dVar68;\n                dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_248 - dVar69,dStack_250 - dVar68);\n                dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_280 - dVar69,dStack_288 - dVar63);\n                if (dVar67 < dVar63) {\n                  dVar67 = dVar67 + *(double *)(iVar26 + 0x34a0);\n                }\n                dVar73 = dVar67 - dVar63;\n                dVar70 = *(double *)(iVar13 + 0x1438) / dVar53;\n                dVar74 = SQRT(dVar70);\n                if (dVar70 < 0.0) {\n                  (**(code **)(puVar47 + 0x304770))();\n                }\n                dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar73 / (dVar74 + dVar74));\n                if (dVar73 < dVar51) {\n                  uVar41 = (uint)dVar73;\n                  uVar42 = uVar41 + 0x618;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                  if (uVar42 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar11 = (double *)(*pcVar48)(pdVar11);\n                }\n                else {\n                  uVar41 = (int)(dVar73 - dVar51) | 0x80000000;\n                  uVar42 = uVar41 + 0x618;\n                  if (0x4000000 < uVar42) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar46 + 0x618 + uVar41)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uStack_22c < uVar42) goto LAB_000a66a4;\n                    iVar44 = uStack_22c + uVar41;\n                    uStack_22c = iVar44 + 0x618;\n                    pdVar11 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar11,iVar44 + 0xc30,0x10);\n                  }\n                }\n                if (iVar30 + 0x618 < (int)uVar10) {\n                  if (pdVar11 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a665c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar10 < 0xfffff9e8) {\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                    uVar10 = uVar10 + 0x618;\n                  }\n                  else {\n                    pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  }\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a664c;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar28 = pdVar11 + iVar46 * 2;\n                *pdVar28 = dStack_250;\n                pdVar28[1] = dStack_248;\n                if (1 < (int)uVar41) {\n                  dVar63 = dVar63 - dVar67;\n                  uVar42 = 1;\n                  do {\n                    uVar45 = uVar42 + 1;\n                    dVar70 = ((double)(int)uVar42 * dVar63) / (double)(int)uVar41 + dVar67;\n                    uVar71 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar71);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar68;\n                    uVar71 = (*pcVar48)(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar71);\n                    pdVar28[3] = dVar53 * dVar73 + dVar69;\n                    uVar42 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar41);\n                }\n                *pdVar11 = dStack_288;\n                pdVar11[1] = dStack_280;\n                dStack_258 = dVar59;\n                dStack_260 = dVar60;\n                dVar67 = dStack_2a0;\n                dVar68 = dStack_2a8;\n                dVar70 = dStack_2b0;\n                dVar74 = dStack_2b8;\n                iVar44 = iVar30;\n                iVar46 = 1;\n                dVar63 = dVar65;\n              }" else (compound_statement "{\n                if (LVar14 != RoundJoin) {\n                  if (LVar14 == BevelJoin) {\n                    iVar30 = iVar46 * 2;\n                    iVar3 = iVar46 * 2;\n                    iVar46 = iVar46 + 2;\n                    pdVar11[iVar30] = dStack_250;\n                    (pdVar11 + iVar30)[1] = dStack_248;\n                    pdVar28 = pdVar12 + iVar44 * 2;\n                    pdVar11[iVar3 + 2] = dStack_288;\n                    (pdVar11 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar58;\n                      pdVar28[1] = dVar55;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_240;\n                      pdVar28[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                          (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar43 = dStack_240;\n                      pdVar43[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar30 = iVar44 + 1;\n                pdVar43 = pdVar12 + iVar44 * 2;\n                if ((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57) {\n                  *pdVar43 = dVar58;\n                  pdVar43[1] = dVar55;\n                }\n                else {\n                  iVar30 = iVar44 + 2;\n                  *pdVar43 = dStack_240;\n                  pdVar43[1] = dStack_238;\n                  pdVar12[iVar44 * 2 + 2] = dStack_278;\n                  (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                }\n                dVar68 = *pdVar28;\n                dVar69 = pdVar28[1];\n                dVar63 = dVar68;\n                dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_248 - dVar69,dStack_250 - dVar68);\n                dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_280 - dVar69,dStack_288 - dVar63);\n                if (dVar67 < dVar63) {\n                  dVar67 = dVar67 + *(double *)(iVar26 + 0x34a0);\n                }\n                dVar73 = dVar67 - dVar63;\n                dVar70 = *(double *)(iVar13 + 0x1438) / dVar53;\n                dVar74 = SQRT(dVar70);\n                if (dVar70 < 0.0) {\n                  (**(code **)(puVar47 + 0x304770))();\n                }\n                dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar73 / (dVar74 + dVar74));\n                if (dVar73 < dVar51) {\n                  uVar41 = (uint)dVar73;\n                  uVar42 = uVar41 + 0x618;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                  if (uVar42 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar11 = (double *)(*pcVar48)(pdVar11);\n                }\n                else {\n                  uVar41 = (int)(dVar73 - dVar51) | 0x80000000;\n                  uVar42 = uVar41 + 0x618;\n                  if (0x4000000 < uVar42) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar46 + 0x618 + uVar41)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uStack_22c < uVar42) goto LAB_000a66a4;\n                    iVar44 = uStack_22c + uVar41;\n                    uStack_22c = iVar44 + 0x618;\n                    pdVar11 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar11,iVar44 + 0xc30,0x10);\n                  }\n                }\n                if (iVar30 + 0x618 < (int)uVar10) {\n                  if (pdVar11 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a665c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar10 < 0xfffff9e8) {\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                    uVar10 = uVar10 + 0x618;\n                  }\n                  else {\n                    pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  }\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a664c;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar28 = pdVar11 + iVar46 * 2;\n                *pdVar28 = dStack_250;\n                pdVar28[1] = dStack_248;\n                if (1 < (int)uVar41) {\n                  dVar63 = dVar63 - dVar67;\n                  uVar42 = 1;\n                  do {\n                    uVar45 = uVar42 + 1;\n                    dVar70 = ((double)(int)uVar42 * dVar63) / (double)(int)uVar41 + dVar67;\n                    uVar71 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar71);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar68;\n                    uVar71 = (*pcVar48)(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar71);\n                    pdVar28[3] = dVar53 * dVar73 + dVar69;\n                    uVar42 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar41);\n                }\n                *pdVar11 = dStack_288;\n                pdVar11[1] = dStack_280;\n                dStack_258 = dVar59;\n                dStack_260 = dVar60;\n                dVar67 = dStack_2a0;\n                dVar68 = dStack_2a8;\n                dVar70 = dStack_2b0;\n                dVar74 = dStack_2b8;\n                iVar44 = iVar30;\n                iVar46 = 1;\n                dVar63 = dVar65;\n              }" { (if_statement "if (LVar14 != RoundJoin) {\n                  if (LVar14 == BevelJoin) {\n                    iVar30 = iVar46 * 2;\n                    iVar3 = iVar46 * 2;\n                    iVar46 = iVar46 + 2;\n                    pdVar11[iVar30] = dStack_250;\n                    (pdVar11 + iVar30)[1] = dStack_248;\n                    pdVar28 = pdVar12 + iVar44 * 2;\n                    pdVar11[iVar3 + 2] = dStack_288;\n                    (pdVar11 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar58;\n                      pdVar28[1] = dVar55;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_240;\n                      pdVar28[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                          (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar43 = dStack_240;\n                      pdVar43[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }" if (parenthesized_expression "(LVar14 != RoundJoin)" ( (binary_expression "LVar14 != RoundJoin" identifier != identifier) )) (compound_statement "{\n                  if (LVar14 == BevelJoin) {\n                    iVar30 = iVar46 * 2;\n                    iVar3 = iVar46 * 2;\n                    iVar46 = iVar46 + 2;\n                    pdVar11[iVar30] = dStack_250;\n                    (pdVar11 + iVar30)[1] = dStack_248;\n                    pdVar28 = pdVar12 + iVar44 * 2;\n                    pdVar11[iVar3 + 2] = dStack_288;\n                    (pdVar11 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar58;\n                      pdVar28[1] = dVar55;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_240;\n                      pdVar28[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                          (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar43 = dStack_240;\n                      pdVar43[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }" { (if_statement "if (LVar14 == BevelJoin) {\n                    iVar30 = iVar46 * 2;\n                    iVar3 = iVar46 * 2;\n                    iVar46 = iVar46 + 2;\n                    pdVar11[iVar30] = dStack_250;\n                    (pdVar11 + iVar30)[1] = dStack_248;\n                    pdVar28 = pdVar12 + iVar44 * 2;\n                    pdVar11[iVar3 + 2] = dStack_288;\n                    (pdVar11 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar58;\n                      pdVar28[1] = dVar55;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_240;\n                      pdVar28[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                          (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar43 = dStack_240;\n                      pdVar43[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }" if (parenthesized_expression "(LVar14 == BevelJoin)" ( (binary_expression "LVar14 == BevelJoin" identifier == identifier) )) (compound_statement "{\n                    iVar30 = iVar46 * 2;\n                    iVar3 = iVar46 * 2;\n                    iVar46 = iVar46 + 2;\n                    pdVar11[iVar30] = dStack_250;\n                    (pdVar11 + iVar30)[1] = dStack_248;\n                    pdVar28 = pdVar12 + iVar44 * 2;\n                    pdVar11[iVar3 + 2] = dStack_288;\n                    (pdVar11 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar58;\n                      pdVar28[1] = dVar55;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_240;\n                      pdVar28[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                    }\n                  }" { (expression_statement "iVar30 = iVar46 * 2;" (assignment_expression "iVar30 = iVar46 * 2" identifier = (binary_expression "iVar46 * 2" identifier * number_literal)) ;) (expression_statement "iVar3 = iVar46 * 2;" (assignment_expression "iVar3 = iVar46 * 2" identifier = (binary_expression "iVar46 * 2" identifier * number_literal)) ;) (expression_statement "iVar46 = iVar46 + 2;" (assignment_expression "iVar46 = iVar46 + 2" identifier = (binary_expression "iVar46 + 2" identifier + number_literal)) ;) (expression_statement "pdVar11[iVar30] = dStack_250;" (assignment_expression "pdVar11[iVar30] = dStack_250" (subscript_expression "pdVar11[iVar30]" identifier [ identifier ]) = identifier) ;) (expression_statement "(pdVar11 + iVar30)[1] = dStack_248;" (assignment_expression "(pdVar11 + iVar30)[1] = dStack_248" (subscript_expression "(pdVar11 + iVar30)[1]" (parenthesized_expression "(pdVar11 + iVar30)" ( (binary_expression "pdVar11 + iVar30" identifier + identifier) )) [ number_literal ]) = identifier) ;) (expression_statement "pdVar28 = pdVar12 + iVar44 * 2;" (assignment_expression "pdVar28 = pdVar12 + iVar44 * 2" identifier = (binary_expression "pdVar12 + iVar44 * 2" identifier + (binary_expression "iVar44 * 2" identifier * number_literal))) ;) (expression_statement "pdVar11[iVar3 + 2] = dStack_288;" (assignment_expression "pdVar11[iVar3 + 2] = dStack_288" (subscript_expression "pdVar11[iVar3 + 2]" identifier [ (binary_expression "iVar3 + 2" identifier + number_literal) ]) = identifier) ;) (expression_statement "(pdVar11 + iVar3 + 2)[1] = dStack_280;" (assignment_expression "(pdVar11 + iVar3 + 2)[1] = dStack_280" (subscript_expression "(pdVar11 + iVar3 + 2)[1]" (parenthesized_expression "(pdVar11 + iVar3 + 2)" ( (binary_expression "pdVar11 + iVar3 + 2" (binary_expression "pdVar11 + iVar3" identifier + identifier) + number_literal) )) [ number_literal ]) = identifier) ;) (if_statement "if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) {\n                      *pdVar28 = dVar58;\n                      pdVar28[1] = dVar55;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 1;\n                    }\n                    else {\n                      *pdVar28 = dStack_240;\n                      pdVar28[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                    }" if (parenthesized_expression "((dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57)" ( (binary_expression "(dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57" (binary_expression "(dVar58 - dVar69) * (dVar58 - dVar69) +\n                        (dVar55 - dVar73) * (dVar55 - dVar73)" (binary_expression "(dVar58 - dVar69) * (dVar58 - dVar69)" (parenthesized_expression "(dVar58 - dVar69)" ( (binary_expression "dVar58 - dVar69" identifier - identifier) )) * (parenthesized_expression "(dVar58 - dVar69)" ( (binary_expression "dVar58 - dVar69" identifier - identifier) ))) + (binary_expression "(dVar55 - dVar73) * (dVar55 - dVar73)" (parenthesized_expression "(dVar55 - dVar73)" ( (binary_expression "dVar55 - dVar73" identifier - identifier) )) * (parenthesized_expression "(dVar55 - dVar73)" ( (binary_expression "dVar55 - dVar73" identifier - identifier) )))) <= identifier) )) (compound_statement "{\n                      *pdVar28 = dVar58;\n                      pdVar28[1] = dVar55;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 1;\n                    }" { (expression_statement "*pdVar28 = dVar58;" (assignment_expression "*pdVar28 = dVar58" (pointer_expression "*pdVar28" * identifier) = identifier) ;) (expression_statement "pdVar28[1] = dVar55;" (assignment_expression "pdVar28[1] = dVar55" (subscript_expression "pdVar28[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "dStack_258 = dVar59;" (assignment_expression "dStack_258 = dVar59" identifier = identifier) ;) (expression_statement "dStack_260 = dVar60;" (assignment_expression "dStack_260 = dVar60" identifier = identifier) ;) (expression_statement "dVar67 = dStack_2a0;" (assignment_expression "dVar67 = dStack_2a0" identifier = identifier) ;) (expression_statement "dVar68 = dStack_2a8;" (assignment_expression "dVar68 = dStack_2a8" identifier = identifier) ;) (expression_statement "dVar70 = dStack_2b0;" (assignment_expression "dVar70 = dStack_2b0" identifier = identifier) ;) (expression_statement "dVar74 = dStack_2b8;" (assignment_expression "dVar74 = dStack_2b8" identifier = identifier) ;) (expression_statement "iVar44 = iVar44 + 1;" (assignment_expression "iVar44 = iVar44 + 1" identifier = (binary_expression "iVar44 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n                      *pdVar28 = dStack_240;\n                      pdVar28[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                    }" else (compound_statement "{\n                      *pdVar28 = dStack_240;\n                      pdVar28[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                    }" { (expression_statement "*pdVar28 = dStack_240;" (assignment_expression "*pdVar28 = dStack_240" (pointer_expression "*pdVar28" * identifier) = identifier) ;) (expression_statement "pdVar28[1] = dStack_238;" (assignment_expression "pdVar28[1] = dStack_238" (subscript_expression "pdVar28[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pdVar12[iVar44 * 2 + 2] = dStack_278;" (assignment_expression "pdVar12[iVar44 * 2 + 2] = dStack_278" (subscript_expression "pdVar12[iVar44 * 2 + 2]" identifier [ (binary_expression "iVar44 * 2 + 2" (binary_expression "iVar44 * 2" identifier * number_literal) + number_literal) ]) = identifier) ;) (expression_statement "(pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;" (assignment_expression "(pdVar12 + iVar44 * 2 + 2)[1] = dStack_270" (subscript_expression "(pdVar12 + iVar44 * 2 + 2)[1]" (parenthesized_expression "(pdVar12 + iVar44 * 2 + 2)" ( (binary_expression "pdVar12 + iVar44 * 2 + 2" (binary_expression "pdVar12 + iVar44 * 2" identifier + (binary_expression "iVar44 * 2" identifier * number_literal)) + number_literal) )) [ number_literal ]) = identifier) ;) (expression_statement "dStack_258 = dVar59;" (assignment_expression "dStack_258 = dVar59" identifier = identifier) ;) (expression_statement "dStack_260 = dVar60;" (assignment_expression "dStack_260 = dVar60" identifier = identifier) ;) (expression_statement "dVar67 = dStack_2a0;" (assignment_expression "dVar67 = dStack_2a0" identifier = identifier) ;) (expression_statement "dVar68 = dStack_2a8;" (assignment_expression "dVar68 = dStack_2a8" identifier = identifier) ;) (expression_statement "dVar70 = dStack_2b0;" (assignment_expression "dVar70 = dStack_2b0" identifier = identifier) ;) (expression_statement "dVar74 = dStack_2b8;" (assignment_expression "dVar74 = dStack_2b8" identifier = identifier) ;) (expression_statement "iVar44 = iVar44 + 2;" (assignment_expression "iVar44 = iVar44 + 2" identifier = (binary_expression "iVar44 + 2" identifier + number_literal)) ;) }))) }) (else_clause "else {\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                          (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar43 = dStack_240;\n                      pdVar43[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }" else (compound_statement "{\n                    dStack_258 = dVar59;\n                    dStack_260 = dVar60;\n                    dVar67 = dStack_2a0;\n                    dVar68 = dStack_2a8;\n                    dVar70 = dStack_2b0;\n                    dVar74 = dStack_2b8;\n                    if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                          (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar43 = dStack_240;\n                      pdVar43[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }\n                  }" { (expression_statement "dStack_258 = dVar59;" (assignment_expression "dStack_258 = dVar59" identifier = identifier) ;) (expression_statement "dStack_260 = dVar60;" (assignment_expression "dStack_260 = dVar60" identifier = identifier) ;) (expression_statement "dVar67 = dStack_2a0;" (assignment_expression "dVar67 = dStack_2a0" identifier = identifier) ;) (expression_statement "dVar68 = dStack_2a8;" (assignment_expression "dVar68 = dStack_2a8" identifier = identifier) ;) (expression_statement "dVar70 = dStack_2b0;" (assignment_expression "dVar70 = dStack_2b0" identifier = identifier) ;) (expression_statement "dVar74 = dStack_2b8;" (assignment_expression "dVar74 = dStack_2b8" identifier = identifier) ;) (if_statement "if (LVar14 == MiterJoin) {\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                          (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar43 = dStack_240;\n                      pdVar43[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }" if (parenthesized_expression "(LVar14 == MiterJoin)" ( (binary_expression "LVar14 == MiterJoin" identifier == identifier) )) (compound_statement "{\n                      pdVar28 = pdVar11 + iVar46 * 2;\n                      pdVar43 = pdVar12 + iVar44 * 2;\n                      if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                          (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar43 = dStack_240;\n                      pdVar43[1] = dStack_238;\n                      pdVar12[iVar44 * 2 + 2] = dStack_278;\n                      (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                      *pdVar28 = dStack_250;\n                      pdVar28[1] = dStack_248;\n                      pdVar11[iVar46 * 2 + 2] = dStack_288;\n                      (pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar59;\n                      dStack_260 = dVar60;\n                      dVar67 = dStack_2a0;\n                      dVar68 = dStack_2a8;\n                      dVar70 = dStack_2b0;\n                      dVar74 = dStack_2b8;\n                      iVar44 = iVar44 + 2;\n                      iVar46 = iVar46 + 2;\n                    }" { (expression_statement "pdVar28 = pdVar11 + iVar46 * 2;" (assignment_expression "pdVar28 = pdVar11 + iVar46 * 2" identifier = (binary_expression "pdVar11 + iVar46 * 2" identifier + (binary_expression "iVar46 * 2" identifier * number_literal))) ;) (expression_statement "pdVar43 = pdVar12 + iVar44 * 2;" (assignment_expression "pdVar43 = pdVar12 + iVar44 * 2" identifier = (binary_expression "pdVar12 + iVar44 * 2" identifier + (binary_expression "iVar44 * 2" identifier * number_literal))) ;) (if_statement "if ((dVar58 - dVar69) * (dVar58 - dVar69) +\n                          (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57) goto LAB_000a58dc;" if (parenthesized_expression "((dVar58 - dVar69) * (dVar58 - dVar69) +\n                          (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57)" ( (binary_expression "(dVar58 - dVar69) * (dVar58 - dVar69) +\n                          (dVar55 - dVar73) * (dVar55 - dVar73) <= dVar57" (binary_expression "(dVar58 - dVar69) * (dVar58 - dVar69) +\n                          (dVar55 - dVar73) * (dVar55 - dVar73)" (binary_expression "(dVar58 - dVar69) * (dVar58 - dVar69)" (parenthesized_expression "(dVar58 - dVar69)" ( (binary_expression "dVar58 - dVar69" identifier - identifier) )) * (parenthesized_expression "(dVar58 - dVar69)" ( (binary_expression "dVar58 - dVar69" identifier - identifier) ))) + (binary_expression "(dVar55 - dVar73) * (dVar55 - dVar73)" (parenthesized_expression "(dVar55 - dVar73)" ( (binary_expression "dVar55 - dVar73" identifier - identifier) )) * (parenthesized_expression "(dVar55 - dVar73)" ( (binary_expression "dVar55 - dVar73" identifier - identifier) )))) <= identifier) )) (goto_statement "goto LAB_000a58dc;" goto statement_identifier ;)) (labeled_statement "LAB_000a607c:\n                      *pdVar43 = dStack_240;" statement_identifier : (expression_statement "*pdVar43 = dStack_240;" (assignment_expression "*pdVar43 = dStack_240" (pointer_expression "*pdVar43" * identifier) = identifier) ;)) (expression_statement "pdVar43[1] = dStack_238;" (assignment_expression "pdVar43[1] = dStack_238" (subscript_expression "pdVar43[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pdVar12[iVar44 * 2 + 2] = dStack_278;" (assignment_expression "pdVar12[iVar44 * 2 + 2] = dStack_278" (subscript_expression "pdVar12[iVar44 * 2 + 2]" identifier [ (binary_expression "iVar44 * 2 + 2" (binary_expression "iVar44 * 2" identifier * number_literal) + number_literal) ]) = identifier) ;) (expression_statement "(pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;" (assignment_expression "(pdVar12 + iVar44 * 2 + 2)[1] = dStack_270" (subscript_expression "(pdVar12 + iVar44 * 2 + 2)[1]" (parenthesized_expression "(pdVar12 + iVar44 * 2 + 2)" ( (binary_expression "pdVar12 + iVar44 * 2 + 2" (binary_expression "pdVar12 + iVar44 * 2" identifier + (binary_expression "iVar44 * 2" identifier * number_literal)) + number_literal) )) [ number_literal ]) = identifier) ;) (expression_statement "*pdVar28 = dStack_250;" (assignment_expression "*pdVar28 = dStack_250" (pointer_expression "*pdVar28" * identifier) = identifier) ;) (expression_statement "pdVar28[1] = dStack_248;" (assignment_expression "pdVar28[1] = dStack_248" (subscript_expression "pdVar28[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pdVar11[iVar46 * 2 + 2] = dStack_288;" (assignment_expression "pdVar11[iVar46 * 2 + 2] = dStack_288" (subscript_expression "pdVar11[iVar46 * 2 + 2]" identifier [ (binary_expression "iVar46 * 2 + 2" (binary_expression "iVar46 * 2" identifier * number_literal) + number_literal) ]) = identifier) ;) (expression_statement "(pdVar11 + iVar46 * 2 + 2)[1] = dStack_280;" (assignment_expression "(pdVar11 + iVar46 * 2 + 2)[1] = dStack_280" (subscript_expression "(pdVar11 + iVar46 * 2 + 2)[1]" (parenthesized_expression "(pdVar11 + iVar46 * 2 + 2)" ( (binary_expression "pdVar11 + iVar46 * 2 + 2" (binary_expression "pdVar11 + iVar46 * 2" identifier + (binary_expression "iVar46 * 2" identifier * number_literal)) + number_literal) )) [ number_literal ]) = identifier) ;) (expression_statement "dStack_258 = dVar59;" (assignment_expression "dStack_258 = dVar59" identifier = identifier) ;) (expression_statement "dStack_260 = dVar60;" (assignment_expression "dStack_260 = dVar60" identifier = identifier) ;) (expression_statement "dVar67 = dStack_2a0;" (assignment_expression "dVar67 = dStack_2a0" identifier = identifier) ;) (expression_statement "dVar68 = dStack_2a8;" (assignment_expression "dVar68 = dStack_2a8" identifier = identifier) ;) (expression_statement "dVar70 = dStack_2b0;" (assignment_expression "dVar70 = dStack_2b0" identifier = identifier) ;) (expression_statement "dVar74 = dStack_2b8;" (assignment_expression "dVar74 = dStack_2b8" identifier = identifier) ;) (expression_statement "iVar44 = iVar44 + 2;" (assignment_expression "iVar44 = iVar44 + 2" identifier = (binary_expression "iVar44 + 2" identifier + number_literal)) ;) (expression_statement "iVar46 = iVar46 + 2;" (assignment_expression "iVar46 = iVar46 + 2" identifier = (binary_expression "iVar46 + 2" identifier + number_literal)) ;) })) }))) (goto_statement "goto joined_r0x000a5a50;" goto statement_identifier ;) })) (expression_statement "iVar30 = iVar44 + 1;" (assignment_expression "iVar30 = iVar44 + 1" identifier = (binary_expression "iVar44 + 1" identifier + number_literal)) ;) (expression_statement "pdVar43 = pdVar12 + iVar44 * 2;" (assignment_expression "pdVar43 = pdVar12 + iVar44 * 2" identifier = (binary_expression "pdVar12 + iVar44 * 2" identifier + (binary_expression "iVar44 * 2" identifier * number_literal))) ;) (if_statement "if ((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57) {\n                  *pdVar43 = dVar58;\n                  pdVar43[1] = dVar55;\n                }\n                else {\n                  iVar30 = iVar44 + 2;\n                  *pdVar43 = dStack_240;\n                  pdVar43[1] = dStack_238;\n                  pdVar12[iVar44 * 2 + 2] = dStack_278;\n                  (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                }" if (parenthesized_expression "((dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57)" ( (binary_expression "(dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73) <=\n                    dVar57" (binary_expression "(dVar58 - dVar69) * (dVar58 - dVar69) + (dVar55 - dVar73) * (dVar55 - dVar73)" (binary_expression "(dVar58 - dVar69) * (dVar58 - dVar69)" (parenthesized_expression "(dVar58 - dVar69)" ( (binary_expression "dVar58 - dVar69" identifier - identifier) )) * (parenthesized_expression "(dVar58 - dVar69)" ( (binary_expression "dVar58 - dVar69" identifier - identifier) ))) + (binary_expression "(dVar55 - dVar73) * (dVar55 - dVar73)" (parenthesized_expression "(dVar55 - dVar73)" ( (binary_expression "dVar55 - dVar73" identifier - identifier) )) * (parenthesized_expression "(dVar55 - dVar73)" ( (binary_expression "dVar55 - dVar73" identifier - identifier) )))) <= identifier) )) (compound_statement "{\n                  *pdVar43 = dVar58;\n                  pdVar43[1] = dVar55;\n                }" { (expression_statement "*pdVar43 = dVar58;" (assignment_expression "*pdVar43 = dVar58" (pointer_expression "*pdVar43" * identifier) = identifier) ;) (expression_statement "pdVar43[1] = dVar55;" (assignment_expression "pdVar43[1] = dVar55" (subscript_expression "pdVar43[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  iVar30 = iVar44 + 2;\n                  *pdVar43 = dStack_240;\n                  pdVar43[1] = dStack_238;\n                  pdVar12[iVar44 * 2 + 2] = dStack_278;\n                  (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                }" else (compound_statement "{\n                  iVar30 = iVar44 + 2;\n                  *pdVar43 = dStack_240;\n                  pdVar43[1] = dStack_238;\n                  pdVar12[iVar44 * 2 + 2] = dStack_278;\n                  (pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;\n                }" { (expression_statement "iVar30 = iVar44 + 2;" (assignment_expression "iVar30 = iVar44 + 2" identifier = (binary_expression "iVar44 + 2" identifier + number_literal)) ;) (expression_statement "*pdVar43 = dStack_240;" (assignment_expression "*pdVar43 = dStack_240" (pointer_expression "*pdVar43" * identifier) = identifier) ;) (expression_statement "pdVar43[1] = dStack_238;" (assignment_expression "pdVar43[1] = dStack_238" (subscript_expression "pdVar43[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pdVar12[iVar44 * 2 + 2] = dStack_278;" (assignment_expression "pdVar12[iVar44 * 2 + 2] = dStack_278" (subscript_expression "pdVar12[iVar44 * 2 + 2]" identifier [ (binary_expression "iVar44 * 2 + 2" (binary_expression "iVar44 * 2" identifier * number_literal) + number_literal) ]) = identifier) ;) (expression_statement "(pdVar12 + iVar44 * 2 + 2)[1] = dStack_270;" (assignment_expression "(pdVar12 + iVar44 * 2 + 2)[1] = dStack_270" (subscript_expression "(pdVar12 + iVar44 * 2 + 2)[1]" (parenthesized_expression "(pdVar12 + iVar44 * 2 + 2)" ( (binary_expression "pdVar12 + iVar44 * 2 + 2" (binary_expression "pdVar12 + iVar44 * 2" identifier + (binary_expression "iVar44 * 2" identifier * number_literal)) + number_literal) )) [ number_literal ]) = identifier) ;) }))) (expression_statement "dVar68 = *pdVar28;" (assignment_expression "dVar68 = *pdVar28" identifier = (pointer_expression "*pdVar28" * identifier)) ;) (expression_statement "dVar69 = pdVar28[1];" (assignment_expression "dVar69 = pdVar28[1]" identifier = (subscript_expression "pdVar28[1]" identifier [ number_literal ])) ;) (expression_statement "dVar63 = dVar68;" (assignment_expression "dVar63 = dVar68" identifier = identifier) ;) (expression_statement "dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_248 - dVar69,dStack_250 - dVar68);" (assignment_expression "dVar67 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_248 - dVar69,dStack_250 - dVar68)" identifier = (cast_expression "(double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_248 - dVar69,dStack_250 - dVar68)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_248 - dVar69,dStack_250 - dVar68)" (parenthesized_expression "(**(code **)(puVar47 + 0x3042f8))" ( (pointer_expression "**(code **)(puVar47 + 0x3042f8)" * (pointer_expression "*(code **)(puVar47 + 0x3042f8)" * (cast_expression "(code **)(puVar47 + 0x3042f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3042f8)" ( (binary_expression "puVar47 + 0x3042f8" identifier + number_literal) ))))) )) (argument_list "(dStack_248 - dVar69,dStack_250 - dVar68)" ( (binary_expression "dStack_248 - dVar69" identifier - identifier) , (binary_expression "dStack_250 - dVar68" identifier - identifier) ))))) ;) (expression_statement "dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_280 - dVar69,dStack_288 - dVar63);" (assignment_expression "dVar63 = (double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_280 - dVar69,dStack_288 - dVar63)" identifier = (cast_expression "(double)(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_280 - dVar69,dStack_288 - dVar63)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar47 + 0x3042f8))\n                                           (dStack_280 - dVar69,dStack_288 - dVar63)" (parenthesized_expression "(**(code **)(puVar47 + 0x3042f8))" ( (pointer_expression "**(code **)(puVar47 + 0x3042f8)" * (pointer_expression "*(code **)(puVar47 + 0x3042f8)" * (cast_expression "(code **)(puVar47 + 0x3042f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3042f8)" ( (binary_expression "puVar47 + 0x3042f8" identifier + number_literal) ))))) )) (argument_list "(dStack_280 - dVar69,dStack_288 - dVar63)" ( (binary_expression "dStack_280 - dVar69" identifier - identifier) , (binary_expression "dStack_288 - dVar63" identifier - identifier) ))))) ;) (if_statement "if (dVar67 < dVar63) {\n                  dVar67 = dVar67 + *(double *)(iVar26 + 0x34a0);\n                }" if (parenthesized_expression "(dVar67 < dVar63)" ( (binary_expression "dVar67 < dVar63" identifier < identifier) )) (compound_statement "{\n                  dVar67 = dVar67 + *(double *)(iVar26 + 0x34a0);\n                }" { (expression_statement "dVar67 = dVar67 + *(double *)(iVar26 + 0x34a0);" (assignment_expression "dVar67 = dVar67 + *(double *)(iVar26 + 0x34a0)" identifier = (binary_expression "dVar67 + *(double *)(iVar26 + 0x34a0)" identifier + (pointer_expression "*(double *)(iVar26 + 0x34a0)" * (cast_expression "(double *)(iVar26 + 0x34a0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar26 + 0x34a0)" ( (binary_expression "iVar26 + 0x34a0" identifier + number_literal) )))))) ;) })) (expression_statement "dVar73 = dVar67 - dVar63;" (assignment_expression "dVar73 = dVar67 - dVar63" identifier = (binary_expression "dVar67 - dVar63" identifier - identifier)) ;) (expression_statement "dVar70 = *(double *)(iVar13 + 0x1438) / dVar53;" (assignment_expression "dVar70 = *(double *)(iVar13 + 0x1438) / dVar53" identifier = (binary_expression "*(double *)(iVar13 + 0x1438) / dVar53" (pointer_expression "*(double *)(iVar13 + 0x1438)" * (cast_expression "(double *)(iVar13 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x1438)" ( (binary_expression "iVar13 + 0x1438" identifier + number_literal) )))) / identifier)) ;) (expression_statement "dVar74 = SQRT(dVar70);" (assignment_expression "dVar74 = SQRT(dVar70)" identifier = (call_expression "SQRT(dVar70)" identifier (argument_list "(dVar70)" ( identifier )))) ;) (if_statement "if (dVar70 < 0.0) {\n                  (**(code **)(puVar47 + 0x304770))();\n                }" if (parenthesized_expression "(dVar70 < 0.0)" ( (binary_expression "dVar70 < 0.0" identifier < number_literal) )) (compound_statement "{\n                  (**(code **)(puVar47 + 0x304770))();\n                }" { (expression_statement "(**(code **)(puVar47 + 0x304770))();" (call_expression "(**(code **)(puVar47 + 0x304770))()" (parenthesized_expression "(**(code **)(puVar47 + 0x304770))" ( (pointer_expression "**(code **)(puVar47 + 0x304770)" * (pointer_expression "*(code **)(puVar47 + 0x304770)" * (cast_expression "(code **)(puVar47 + 0x304770)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x304770)" ( (binary_expression "puVar47 + 0x304770" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar73 / (dVar74 + dVar74));" (assignment_expression "dVar73 = (double)(**(code **)(puVar47 + 0x303f10))(dVar73 / (dVar74 + dVar74))" identifier = (cast_expression "(double)(**(code **)(puVar47 + 0x303f10))(dVar73 / (dVar74 + dVar74))" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar47 + 0x303f10))(dVar73 / (dVar74 + dVar74))" (parenthesized_expression "(**(code **)(puVar47 + 0x303f10))" ( (pointer_expression "**(code **)(puVar47 + 0x303f10)" * (pointer_expression "*(code **)(puVar47 + 0x303f10)" * (cast_expression "(code **)(puVar47 + 0x303f10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x303f10)" ( (binary_expression "puVar47 + 0x303f10" identifier + number_literal) ))))) )) (argument_list "(dVar73 / (dVar74 + dVar74))" ( (binary_expression "dVar73 / (dVar74 + dVar74)" identifier / (parenthesized_expression "(dVar74 + dVar74)" ( (binary_expression "dVar74 + dVar74" identifier + identifier) ))) ))))) ;) (if_statement "if (dVar73 < dVar51) {\n                  uVar41 = (uint)dVar73;\n                  uVar42 = uVar41 + 0x618;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                  if (uVar42 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar11 = (double *)(*pcVar48)(pdVar11);\n                }\n                else {\n                  uVar41 = (int)(dVar73 - dVar51) | 0x80000000;\n                  uVar42 = uVar41 + 0x618;\n                  if (0x4000000 < uVar42) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar46 + 0x618 + uVar41)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uStack_22c < uVar42) goto LAB_000a66a4;\n                    iVar44 = uStack_22c + uVar41;\n                    uStack_22c = iVar44 + 0x618;\n                    pdVar11 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar11,iVar44 + 0xc30,0x10);\n                  }\n                }" if (parenthesized_expression "(dVar73 < dVar51)" ( (binary_expression "dVar73 < dVar51" identifier < identifier) )) (compound_statement "{\n                  uVar41 = (uint)dVar73;\n                  uVar42 = uVar41 + 0x618;\n                  pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                  if (uVar42 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar11 = (double *)(*pcVar48)(pdVar11);\n                }" { (expression_statement "uVar41 = (uint)dVar73;" (assignment_expression "uVar41 = (uint)dVar73" identifier = (cast_expression "(uint)dVar73" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar42 = uVar41 + 0x618;" (assignment_expression "uVar42 = uVar41 + 0x618" identifier = (binary_expression "uVar41 + 0x618" identifier + number_literal)) ;) (expression_statement "pcVar48 = *(code **)(puVar47 + 0x3042b0);" (assignment_expression "pcVar48 = *(code **)(puVar47 + 0x3042b0)" identifier = (pointer_expression "*(code **)(puVar47 + 0x3042b0)" * (cast_expression "(code **)(puVar47 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3042b0)" ( (binary_expression "puVar47 + 0x3042b0" identifier + number_literal) ))))) ;) (if_statement "if (uVar42 < 0x4000001) goto LAB_000a5ec0;" if (parenthesized_expression "(uVar42 < 0x4000001)" ( (binary_expression "uVar42 < 0x4000001" identifier < number_literal) )) (goto_statement "goto LAB_000a5ec0;" goto statement_identifier ;)) (labeled_statement "LAB_000a66a4:\n                  pdVar11 = (double *)(*pcVar48)(pdVar11);" statement_identifier : (expression_statement "pdVar11 = (double *)(*pcVar48)(pdVar11);" (assignment_expression "pdVar11 = (double *)(*pcVar48)(pdVar11)" identifier = (cast_expression "(double *)(*pcVar48)(pdVar11)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar48)(pdVar11)" (parenthesized_expression "(*pcVar48)" ( (pointer_expression "*pcVar48" * identifier) )) (argument_list "(pdVar11)" ( identifier ))))) ;)) }) (else_clause "else {\n                  uVar41 = (int)(dVar73 - dVar51) | 0x80000000;\n                  uVar42 = uVar41 + 0x618;\n                  if (0x4000000 < uVar42) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar46 + 0x618 + uVar41)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uStack_22c < uVar42) goto LAB_000a66a4;\n                    iVar44 = uStack_22c + uVar41;\n                    uStack_22c = iVar44 + 0x618;\n                    pdVar11 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar11,iVar44 + 0xc30,0x10);\n                  }\n                }" else (compound_statement "{\n                  uVar41 = (int)(dVar73 - dVar51) | 0x80000000;\n                  uVar42 = uVar41 + 0x618;\n                  if (0x4000000 < uVar42) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar46 + 0x618 + uVar41)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uStack_22c < uVar42) goto LAB_000a66a4;\n                    iVar44 = uStack_22c + uVar41;\n                    uStack_22c = iVar44 + 0x618;\n                    pdVar11 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar11,iVar44 + 0xc30,0x10);\n                  }\n                }" { (expression_statement "uVar41 = (int)(dVar73 - dVar51) | 0x80000000;" (assignment_expression "uVar41 = (int)(dVar73 - dVar51) | 0x80000000" identifier = (binary_expression "(int)(dVar73 - dVar51) | 0x80000000" (cast_expression "(int)(dVar73 - dVar51)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar73 - dVar51)" ( (binary_expression "dVar73 - dVar51" identifier - identifier) ))) | number_literal)) ;) (expression_statement "uVar42 = uVar41 + 0x618;" (assignment_expression "uVar42 = uVar41 + 0x618" identifier = (binary_expression "uVar41 + 0x618" identifier + number_literal)) ;) (if_statement "if (0x4000000 < uVar42) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }" if (parenthesized_expression "(0x4000000 < uVar42)" ( (binary_expression "0x4000000 < uVar42" number_literal < identifier) )) (compound_statement "{\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }" { (expression_statement "pcVar48 = *(code **)(puVar47 + 0x3042b0);" (assignment_expression "pcVar48 = *(code **)(puVar47 + 0x3042b0)" identifier = (pointer_expression "*(code **)(puVar47 + 0x3042b0)" * (cast_expression "(code **)(puVar47 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3042b0)" ( (binary_expression "puVar47 + 0x3042b0" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000a66a4;" goto statement_identifier ;) })) (labeled_statement "LAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar46 + 0x618 + uVar41)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uStack_22c < uVar42) goto LAB_000a66a4;\n                    iVar44 = uStack_22c + uVar41;\n                    uStack_22c = iVar44 + 0x618;\n                    pdVar11 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar11,iVar44 + 0xc30,0x10);\n                  }" statement_identifier : (if_statement "if ((int)uStack_22c <= (int)(iVar46 + 0x618 + uVar41)) {\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uStack_22c < uVar42) goto LAB_000a66a4;\n                    iVar44 = uStack_22c + uVar41;\n                    uStack_22c = iVar44 + 0x618;\n                    pdVar11 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar11,iVar44 + 0xc30,0x10);\n                  }" if (parenthesized_expression "((int)uStack_22c <= (int)(iVar46 + 0x618 + uVar41))" ( (binary_expression "(int)uStack_22c <= (int)(iVar46 + 0x618 + uVar41)" (cast_expression "(int)uStack_22c" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)(iVar46 + 0x618 + uVar41)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar46 + 0x618 + uVar41)" ( (binary_expression "iVar46 + 0x618 + uVar41" (binary_expression "iVar46 + 0x618" identifier + number_literal) + identifier) )))) )) (compound_statement "{\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    if (~uStack_22c < uVar42) goto LAB_000a66a4;\n                    iVar44 = uStack_22c + uVar41;\n                    uStack_22c = iVar44 + 0x618;\n                    pdVar11 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar11,iVar44 + 0xc30,0x10);\n                  }" { (expression_statement "pcVar48 = *(code **)(puVar47 + 0x3042b0);" (assignment_expression "pcVar48 = *(code **)(puVar47 + 0x3042b0)" identifier = (pointer_expression "*(code **)(puVar47 + 0x3042b0)" * (cast_expression "(code **)(puVar47 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3042b0)" ( (binary_expression "puVar47 + 0x3042b0" identifier + number_literal) ))))) ;) (if_statement "if (~uStack_22c < uVar42) goto LAB_000a66a4;" if (parenthesized_expression "(~uStack_22c < uVar42)" ( (binary_expression "~uStack_22c < uVar42" (unary_expression "~uStack_22c" ~ identifier) < identifier) )) (goto_statement "goto LAB_000a66a4;" goto statement_identifier ;)) (expression_statement "iVar44 = uStack_22c + uVar41;" (assignment_expression "iVar44 = uStack_22c + uVar41" identifier = (binary_expression "uStack_22c + uVar41" identifier + identifier)) ;) (expression_statement "uStack_22c = iVar44 + 0x618;" (assignment_expression "uStack_22c = iVar44 + 0x618" identifier = (binary_expression "iVar44 + 0x618" identifier + number_literal)) ;) (expression_statement "pdVar11 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar11,iVar44 + 0xc30,0x10);" (assignment_expression "pdVar11 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar11,iVar44 + 0xc30,0x10)" identifier = (cast_expression "(double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar11,iVar44 + 0xc30,0x10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar47 + 0x304710))(pdVar11,iVar44 + 0xc30,0x10)" (parenthesized_expression "(**(code **)(puVar47 + 0x304710))" ( (pointer_expression "**(code **)(puVar47 + 0x304710)" * (pointer_expression "*(code **)(puVar47 + 0x304710)" * (cast_expression "(code **)(puVar47 + 0x304710)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x304710)" ( (binary_expression "puVar47 + 0x304710" identifier + number_literal) ))))) )) (argument_list "(pdVar11,iVar44 + 0xc30,0x10)" ( identifier , (binary_expression "iVar44 + 0xc30" identifier + number_literal) , number_literal ))))) ;) }))) }))) (if_statement "if (iVar30 + 0x618 < (int)uVar10) {\n                  if (pdVar11 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a665c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar10 < 0xfffff9e8) {\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                    uVar10 = uVar10 + 0x618;\n                  }\n                  else {\n                    pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  }\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a664c;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a665c;\n                  }\n                }" if (parenthesized_expression "(iVar30 + 0x618 < (int)uVar10)" ( (binary_expression "iVar30 + 0x618 < (int)uVar10" (binary_expression "iVar30 + 0x618" identifier + number_literal) < (cast_expression "(int)uVar10" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  if (pdVar11 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a665c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }" { (if_statement "if (pdVar11 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a665c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }" if (parenthesized_expression "(pdVar11 == (double *)0x0)" ( (binary_expression "pdVar11 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000a664c:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\nLAB_000a665c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }" { (labeled_statement "LAB_000a664c:\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar12);" statement_identifier : (expression_statement "(**(code **)(puVar47 + 0x3042b0))(pdVar12);" (call_expression "(**(code **)(puVar47 + 0x3042b0))(pdVar12)" (parenthesized_expression "(**(code **)(puVar47 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar47 + 0x3042b0)" * (pointer_expression "*(code **)(puVar47 + 0x3042b0)" * (cast_expression "(code **)(puVar47 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3042b0)" ( (binary_expression "puVar47 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar12)" ( identifier ))) ;)) (labeled_statement "LAB_000a665c:\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);" statement_identifier : (expression_statement "pcVar48 = *(code **)(puVar47 + 0x3042b0);" (assignment_expression "pcVar48 = *(code **)(puVar47 + 0x3042b0)" identifier = (pointer_expression "*(code **)(puVar47 + 0x3042b0)" * (cast_expression "(code **)(puVar47 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3042b0)" ( (binary_expression "puVar47 + 0x3042b0" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_000a6660;" goto statement_identifier ;) })) }) (else_clause "else {\n                  if (uVar10 < 0xfffff9e8) {\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                    uVar10 = uVar10 + 0x618;\n                  }\n                  else {\n                    pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  }\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a664c;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a665c;\n                  }\n                }" else (compound_statement "{\n                  if (uVar10 < 0xfffff9e8) {\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                    uVar10 = uVar10 + 0x618;\n                  }\n                  else {\n                    pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  }\n                  if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a664c;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a665c;\n                  }\n                }" { (if_statement "if (uVar10 < 0xfffff9e8) {\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                    uVar10 = uVar10 + 0x618;\n                  }\n                  else {\n                    pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  }" if (parenthesized_expression "(uVar10 < 0xfffff9e8)" ( (binary_expression "uVar10 < 0xfffff9e8" identifier < number_literal) )) (compound_statement "{\n                    pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);\n                    uVar10 = uVar10 + 0x618;\n                  }" { (expression_statement "pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10);" (assignment_expression "pdVar12 = (double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10)" identifier = (cast_expression "(double *)\n                              (**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar47 + 0x304710))(pdVar12,uVar10 + 0xc30,0x10)" (parenthesized_expression "(**(code **)(puVar47 + 0x304710))" ( (pointer_expression "**(code **)(puVar47 + 0x304710)" * (pointer_expression "*(code **)(puVar47 + 0x304710)" * (cast_expression "(code **)(puVar47 + 0x304710)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x304710)" ( (binary_expression "puVar47 + 0x304710" identifier + number_literal) ))))) )) (argument_list "(pdVar12,uVar10 + 0xc30,0x10)" ( identifier , (binary_expression "uVar10 + 0xc30" identifier + number_literal) , number_literal ))))) ;) (expression_statement "uVar10 = uVar10 + 0x618;" (assignment_expression "uVar10 = uVar10 + 0x618" identifier = (binary_expression "uVar10 + 0x618" identifier + number_literal)) ;) }) (else_clause "else {\n                    pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  }" else (compound_statement "{\n                    pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);\n                  }" { (expression_statement "pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12);" (assignment_expression "pdVar12 = (double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12)" identifier = (cast_expression "(double *)(**(code **)(puVar47 + 0x3042b0))(pdVar12)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar47 + 0x3042b0))(pdVar12)" (parenthesized_expression "(**(code **)(puVar47 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar47 + 0x3042b0)" * (pointer_expression "*(code **)(puVar47 + 0x3042b0)" * (cast_expression "(code **)(puVar47 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3042b0)" ( (binary_expression "puVar47 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar12)" ( identifier ))))) ;) }))) (if_statement "if (pdVar11 == (double *)0x0) {\n                    if (pdVar12 != (double *)0x0) goto LAB_000a664c;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d98;\n                    goto LAB_000a5724;\n                  }" if (parenthesized_expression "(pdVar11 == (double *)0x0)" ( (binary_expression "pdVar11 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    if (pdVar12 != (double *)0x0) goto LAB_000a664c;\n                    pcVar48 = *(code **)(puVar47 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar48)(pdVar9);\n                    uVar37 = 0x1d98;\n                    goto LAB_000a5724;\n                  }" { (if_statement "if (pdVar12 != (double *)0x0) goto LAB_000a664c;" if (parenthesized_expression "(pdVar12 != (double *)0x0)" ( (binary_expression "pdVar12 != (double *)0x0" identifier != (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000a664c;" goto statement_identifier ;)) (expression_statement "pcVar48 = *(code **)(puVar47 + 0x3042b0);" (assignment_expression "pcVar48 = *(code **)(puVar47 + 0x3042b0)" identifier = (pointer_expression "*(code **)(puVar47 + 0x3042b0)" * (cast_expression "(code **)(puVar47 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3042b0)" ( (binary_expression "puVar47 + 0x3042b0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000a6660:\n                    (*pcVar48)(pdVar9);" statement_identifier : (expression_statement "(*pcVar48)(pdVar9);" (call_expression "(*pcVar48)(pdVar9)" (parenthesized_expression "(*pcVar48)" ( (pointer_expression "*pcVar48" * identifier) )) (argument_list "(pdVar9)" ( identifier ))) ;)) (expression_statement "uVar37 = 0x1d98;" (assignment_expression "uVar37 = 0x1d98" identifier = number_literal) ;) (goto_statement "goto LAB_000a5724;" goto statement_identifier ;) })) (if_statement "if (pdVar12 == (double *)0x0) {\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a665c;\n                  }" if (parenthesized_expression "(pdVar12 == (double *)0x0)" ( (binary_expression "pdVar12 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n                    goto LAB_000a665c;\n                  }" { (expression_statement "(**(code **)(puVar47 + 0x3042b0))(pdVar11);" (call_expression "(**(code **)(puVar47 + 0x3042b0))(pdVar11)" (parenthesized_expression "(**(code **)(puVar47 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar47 + 0x3042b0)" * (pointer_expression "*(code **)(puVar47 + 0x3042b0)" * (cast_expression "(code **)(puVar47 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3042b0)" ( (binary_expression "puVar47 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar11)" ( identifier ))) ;) (goto_statement "goto LAB_000a665c;" goto statement_identifier ;) })) }))) (expression_statement "pdVar28 = pdVar11 + iVar46 * 2;" (assignment_expression "pdVar28 = pdVar11 + iVar46 * 2" identifier = (binary_expression "pdVar11 + iVar46 * 2" identifier + (binary_expression "iVar46 * 2" identifier * number_literal))) ;) (expression_statement "*pdVar28 = dStack_250;" (assignment_expression "*pdVar28 = dStack_250" (pointer_expression "*pdVar28" * identifier) = identifier) ;) (expression_statement "pdVar28[1] = dStack_248;" (assignment_expression "pdVar28[1] = dStack_248" (subscript_expression "pdVar28[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (1 < (int)uVar41) {\n                  dVar63 = dVar63 - dVar67;\n                  uVar42 = 1;\n                  do {\n                    uVar45 = uVar42 + 1;\n                    dVar70 = ((double)(int)uVar42 * dVar63) / (double)(int)uVar41 + dVar67;\n                    uVar71 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar71);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar68;\n                    uVar71 = (*pcVar48)(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar71);\n                    pdVar28[3] = dVar53 * dVar73 + dVar69;\n                    uVar42 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar41);\n                }" if (parenthesized_expression "(1 < (int)uVar41)" ( (binary_expression "1 < (int)uVar41" number_literal < (cast_expression "(int)uVar41" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  dVar63 = dVar63 - dVar67;\n                  uVar42 = 1;\n                  do {\n                    uVar45 = uVar42 + 1;\n                    dVar70 = ((double)(int)uVar42 * dVar63) / (double)(int)uVar41 + dVar67;\n                    uVar71 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar71);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar68;\n                    uVar71 = (*pcVar48)(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar71);\n                    pdVar28[3] = dVar53 * dVar73 + dVar69;\n                    uVar42 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar41);\n                }" { (expression_statement "dVar63 = dVar63 - dVar67;" (assignment_expression "dVar63 = dVar63 - dVar67" identifier = (binary_expression "dVar63 - dVar67" identifier - identifier)) ;) (expression_statement "uVar42 = 1;" (assignment_expression "uVar42 = 1" identifier = number_literal) ;) (do_statement "do {\n                    uVar45 = uVar42 + 1;\n                    dVar70 = ((double)(int)uVar42 * dVar63) / (double)(int)uVar41 + dVar67;\n                    uVar71 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar71);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar68;\n                    uVar71 = (*pcVar48)(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar71);\n                    pdVar28[3] = dVar53 * dVar73 + dVar69;\n                    uVar42 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  } while (uVar45 != uVar41);" do (compound_statement "{\n                    uVar45 = uVar42 + 1;\n                    dVar70 = ((double)(int)uVar42 * dVar63) / (double)(int)uVar41 + dVar67;\n                    uVar71 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar71);\n                    pcVar48 = *(code **)(puVar47 + 0x304ca8);\n                    pdVar28[2] = dVar53 * dVar73 + dVar68;\n                    uVar71 = (*pcVar48)(dVar70,uVar52);\n                    dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar71);\n                    pdVar28[3] = dVar53 * dVar73 + dVar69;\n                    uVar42 = uVar45;\n                    pdVar28 = pdVar28 + 2;\n                  }" { (expression_statement "uVar45 = uVar42 + 1;" (assignment_expression "uVar45 = uVar42 + 1" identifier = (binary_expression "uVar42 + 1" identifier + number_literal)) ;) (expression_statement "dVar70 = ((double)(int)uVar42 * dVar63) / (double)(int)uVar41 + dVar67;" (assignment_expression "dVar70 = ((double)(int)uVar42 * dVar63) / (double)(int)uVar41 + dVar67" identifier = (binary_expression "((double)(int)uVar42 * dVar63) / (double)(int)uVar41 + dVar67" (binary_expression "((double)(int)uVar42 * dVar63) / (double)(int)uVar41" (parenthesized_expression "((double)(int)uVar42 * dVar63)" ( (binary_expression "(double)(int)uVar42 * dVar63" (cast_expression "(double)(int)uVar42" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)uVar42" ( (type_descriptor "int" primitive_type) ) identifier)) * identifier) )) / (cast_expression "(double)(int)uVar41" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)uVar41" ( (type_descriptor "int" primitive_type) ) identifier))) + identifier)) ;) (expression_statement "uVar71 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar52);" (assignment_expression "uVar71 = (**(code **)(puVar47 + 0x304ca8))(dVar70,uVar52)" identifier = (call_expression "(**(code **)(puVar47 + 0x304ca8))(dVar70,uVar52)" (parenthesized_expression "(**(code **)(puVar47 + 0x304ca8))" ( (pointer_expression "**(code **)(puVar47 + 0x304ca8)" * (pointer_expression "*(code **)(puVar47 + 0x304ca8)" * (cast_expression "(code **)(puVar47 + 0x304ca8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x304ca8)" ( (binary_expression "puVar47 + 0x304ca8" identifier + number_literal) ))))) )) (argument_list "(dVar70,uVar52)" ( identifier , identifier )))) ;) (expression_statement "dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar71);" (assignment_expression "dVar73 = (double)(**(code **)(puVar47 + 0x304608))(uVar71)" identifier = (cast_expression "(double)(**(code **)(puVar47 + 0x304608))(uVar71)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar47 + 0x304608))(uVar71)" (parenthesized_expression "(**(code **)(puVar47 + 0x304608))" ( (pointer_expression "**(code **)(puVar47 + 0x304608)" * (pointer_expression "*(code **)(puVar47 + 0x304608)" * (cast_expression "(code **)(puVar47 + 0x304608)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x304608)" ( (binary_expression "puVar47 + 0x304608" identifier + number_literal) ))))) )) (argument_list "(uVar71)" ( identifier ))))) ;) (expression_statement "pcVar48 = *(code **)(puVar47 + 0x304ca8);" (assignment_expression "pcVar48 = *(code **)(puVar47 + 0x304ca8)" identifier = (pointer_expression "*(code **)(puVar47 + 0x304ca8)" * (cast_expression "(code **)(puVar47 + 0x304ca8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x304ca8)" ( (binary_expression "puVar47 + 0x304ca8" identifier + number_literal) ))))) ;) (expression_statement "pdVar28[2] = dVar53 * dVar73 + dVar68;" (assignment_expression "pdVar28[2] = dVar53 * dVar73 + dVar68" (subscript_expression "pdVar28[2]" identifier [ number_literal ]) = (binary_expression "dVar53 * dVar73 + dVar68" (binary_expression "dVar53 * dVar73" identifier * identifier) + identifier)) ;) (expression_statement "uVar71 = (*pcVar48)(dVar70,uVar52);" (assignment_expression "uVar71 = (*pcVar48)(dVar70,uVar52)" identifier = (call_expression "(*pcVar48)(dVar70,uVar52)" (parenthesized_expression "(*pcVar48)" ( (pointer_expression "*pcVar48" * identifier) )) (argument_list "(dVar70,uVar52)" ( identifier , identifier )))) ;) (expression_statement "dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar71);" (assignment_expression "dVar73 = (double)(**(code **)(puVar47 + 0x304034))(uVar71)" identifier = (cast_expression "(double)(**(code **)(puVar47 + 0x304034))(uVar71)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar47 + 0x304034))(uVar71)" (parenthesized_expression "(**(code **)(puVar47 + 0x304034))" ( (pointer_expression "**(code **)(puVar47 + 0x304034)" * (pointer_expression "*(code **)(puVar47 + 0x304034)" * (cast_expression "(code **)(puVar47 + 0x304034)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x304034)" ( (binary_expression "puVar47 + 0x304034" identifier + number_literal) ))))) )) (argument_list "(uVar71)" ( identifier ))))) ;) (expression_statement "pdVar28[3] = dVar53 * dVar73 + dVar69;" (assignment_expression "pdVar28[3] = dVar53 * dVar73 + dVar69" (subscript_expression "pdVar28[3]" identifier [ number_literal ]) = (binary_expression "dVar53 * dVar73 + dVar69" (binary_expression "dVar53 * dVar73" identifier * identifier) + identifier)) ;) (expression_statement "uVar42 = uVar45;" (assignment_expression "uVar42 = uVar45" identifier = identifier) ;) (expression_statement "pdVar28 = pdVar28 + 2;" (assignment_expression "pdVar28 = pdVar28 + 2" identifier = (binary_expression "pdVar28 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar45 != uVar41)" ( (binary_expression "uVar45 != uVar41" identifier != identifier) )) ;) })) (expression_statement "*pdVar11 = dStack_288;" (assignment_expression "*pdVar11 = dStack_288" (pointer_expression "*pdVar11" * identifier) = identifier) ;) (expression_statement "pdVar11[1] = dStack_280;" (assignment_expression "pdVar11[1] = dStack_280" (subscript_expression "pdVar11[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "dStack_258 = dVar59;" (assignment_expression "dStack_258 = dVar59" identifier = identifier) ;) (expression_statement "dStack_260 = dVar60;" (assignment_expression "dStack_260 = dVar60" identifier = identifier) ;) (expression_statement "dVar67 = dStack_2a0;" (assignment_expression "dVar67 = dStack_2a0" identifier = identifier) ;) (expression_statement "dVar68 = dStack_2a8;" (assignment_expression "dVar68 = dStack_2a8" identifier = identifier) ;) (expression_statement "dVar70 = dStack_2b0;" (assignment_expression "dVar70 = dStack_2b0" identifier = identifier) ;) (expression_statement "dVar74 = dStack_2b8;" (assignment_expression "dVar74 = dStack_2b8" identifier = identifier) ;) (expression_statement "iVar44 = iVar30;" (assignment_expression "iVar44 = iVar30" identifier = identifier) ;) (expression_statement "iVar46 = 1;" (assignment_expression "iVar46 = 1" identifier = number_literal) ;) (expression_statement "dVar63 = dVar65;" (assignment_expression "dVar63 = dVar65" identifier = identifier) ;) }))) })) (labeled_statement "joined_r0x000a5a50:\n            dStack_250 = dVar74;" statement_identifier : (expression_statement "dStack_250 = dVar74;" (assignment_expression "dStack_250 = dVar74" identifier = identifier) ;)) (expression_statement "dStack_248 = dVar70;" (assignment_expression "dStack_248 = dVar70" identifier = identifier) ;) (expression_statement "dStack_240 = dVar68;" (assignment_expression "dStack_240 = dVar68" identifier = identifier) ;) (expression_statement "dStack_238 = dVar67;" (assignment_expression "dStack_238 = dVar67" identifier = identifier) ;) (if_statement "if (sVar35 + 1 == sVar40) goto LAB_000a5a58;" if (parenthesized_expression "(sVar35 + 1 == sVar40)" ( (binary_expression "sVar35 + 1 == sVar40" (binary_expression "sVar35 + 1" identifier + number_literal) == identifier) )) (goto_statement "goto LAB_000a5a58;" goto statement_identifier ;)) (expression_statement "pdVar16 = pdVar16 + 5;" (assignment_expression "pdVar16 = pdVar16 + 5" identifier = (binary_expression "pdVar16 + 5" identifier + number_literal)) ;) (expression_statement "sVar35 = sVar35 + 1;" (assignment_expression "sVar35 = sVar35 + 1" identifier = (binary_expression "sVar35 + 1" identifier + number_literal)) ;) (expression_statement "dVar69 = pdVar9[sVar49 * 5];" (assignment_expression "dVar69 = pdVar9[sVar49 * 5]" identifier = (subscript_expression "pdVar9[sVar49 * 5]" identifier [ (binary_expression "sVar49 * 5" identifier * number_literal) ])) ;) (expression_statement "dVar73 = (pdVar9 + sVar49 * 5)[1];" (assignment_expression "dVar73 = (pdVar9 + sVar49 * 5)[1]" identifier = (subscript_expression "(pdVar9 + sVar49 * 5)[1]" (parenthesized_expression "(pdVar9 + sVar49 * 5)" ( (binary_expression "pdVar9 + sVar49 * 5" identifier + (binary_expression "sVar49 * 5" identifier * number_literal)) )) [ number_literal ])) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "iVar44 = 4;" (assignment_expression "iVar44 = 4" identifier = number_literal) ;) (expression_statement "iVar27 = 0x10;" (assignment_expression "iVar27 = 0x10" identifier = number_literal) ;) (expression_statement "iVar46 = 0x10;" (assignment_expression "iVar46 = 0x10" identifier = number_literal) ;) (expression_statement "iVar13 = 2;" (assignment_expression "iVar13 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_000a5a70;" goto statement_identifier ;) })) (expression_statement "bVar1 = (int)sVar40 < 2;" (assignment_expression "bVar1 = (int)sVar40 < 2" identifier = (binary_expression "(int)sVar40 < 2" (cast_expression "(int)sVar40" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal)) ;) (expression_statement "iStack_188 = 0;" (assignment_expression "iStack_188 = 0" identifier = number_literal) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "*(size_t *)((int)pdVar11 + 0x14) = 0;" (assignment_expression "*(size_t *)((int)pdVar11 + 0x14) = 0" (pointer_expression "*(size_t *)((int)pdVar11 + 0x14)" * (cast_expression "(size_t *)((int)pdVar11 + 0x14)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar11 + 0x14)" ( (binary_expression "(int)pdVar11 + 0x14" (cast_expression "(int)pdVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (if_statement "if (!bVar1) goto LAB_000a4fe8;" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (goto_statement "goto LAB_000a4fe8;" goto statement_identifier ;)) (labeled_statement "LAB_000a6124:\n      if (sVar40 != 1) {\n        sVar49 = 1;\n        dStack_258 = 0.0;\n        dStack_260 = 0.0;\n        goto LAB_000a5110;\n      }" statement_identifier : (if_statement "if (sVar40 != 1) {\n        sVar49 = 1;\n        dStack_258 = 0.0;\n        dStack_260 = 0.0;\n        goto LAB_000a5110;\n      }" if (parenthesized_expression "(sVar40 != 1)" ( (binary_expression "sVar40 != 1" identifier != number_literal) )) (compound_statement "{\n        sVar49 = 1;\n        dStack_258 = 0.0;\n        dStack_260 = 0.0;\n        goto LAB_000a5110;\n      }" { (expression_statement "sVar49 = 1;" (assignment_expression "sVar49 = 1" identifier = number_literal) ;) (expression_statement "dStack_258 = 0.0;" (assignment_expression "dStack_258 = 0.0" identifier = number_literal) ;) (expression_statement "dStack_260 = 0.0;" (assignment_expression "dStack_260 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_000a5110;" goto statement_identifier ;) }))) (expression_statement "sVar49 = 1;" (assignment_expression "sVar49 = 1" identifier = number_literal) ;) (expression_statement "dStack_258 = 0.0;" (assignment_expression "dStack_258 = 0.0" identifier = number_literal) ;) (expression_statement "LVar23 = draw_info->linecap;" (assignment_expression "LVar23 = draw_info->linecap" identifier = (field_expression "draw_info->linecap" identifier -> field_identifier)) ;) (expression_statement "dStack_260 = 0.0;" (assignment_expression "dStack_260 = 0.0" identifier = number_literal) ;) (labeled_statement "joined_r0x000a50f8:\n      if (LVar23 == RoundCap) {\n        pcVar48 = *(code **)(puVar47 + 0x304644);\n        if (!bVar2) {\n          sVar49 = sVar49 - 1;\n          goto LAB_000a5110;\n        }\n      }\n      else {\n        pcVar48 = *(code **)(puVar47 + 0x304644);\n      }" statement_identifier : (if_statement "if (LVar23 == RoundCap) {\n        pcVar48 = *(code **)(puVar47 + 0x304644);\n        if (!bVar2) {\n          sVar49 = sVar49 - 1;\n          goto LAB_000a5110;\n        }\n      }\n      else {\n        pcVar48 = *(code **)(puVar47 + 0x304644);\n      }" if (parenthesized_expression "(LVar23 == RoundCap)" ( (binary_expression "LVar23 == RoundCap" identifier == identifier) )) (compound_statement "{\n        pcVar48 = *(code **)(puVar47 + 0x304644);\n        if (!bVar2) {\n          sVar49 = sVar49 - 1;\n          goto LAB_000a5110;\n        }\n      }" { (expression_statement "pcVar48 = *(code **)(puVar47 + 0x304644);" (assignment_expression "pcVar48 = *(code **)(puVar47 + 0x304644)" identifier = (pointer_expression "*(code **)(puVar47 + 0x304644)" * (cast_expression "(code **)(puVar47 + 0x304644)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x304644)" ( (binary_expression "puVar47 + 0x304644" identifier + number_literal) ))))) ;) (if_statement "if (!bVar2) {\n          sVar49 = sVar49 - 1;\n          goto LAB_000a5110;\n        }" if (parenthesized_expression "(!bVar2)" ( (unary_expression "!bVar2" ! identifier) )) (compound_statement "{\n          sVar49 = sVar49 - 1;\n          goto LAB_000a5110;\n        }" { (expression_statement "sVar49 = sVar49 - 1;" (assignment_expression "sVar49 = sVar49 - 1" identifier = (binary_expression "sVar49 - 1" identifier - number_literal)) ;) (goto_statement "goto LAB_000a5110;" goto statement_identifier ;) })) }) (else_clause "else {\n        pcVar48 = *(code **)(puVar47 + 0x304644);\n      }" else (compound_statement "{\n        pcVar48 = *(code **)(puVar47 + 0x304644);\n      }" { (expression_statement "pcVar48 = *(code **)(puVar47 + 0x304644);" (assignment_expression "pcVar48 = *(code **)(puVar47 + 0x304644)" identifier = (pointer_expression "*(code **)(puVar47 + 0x304644)" * (cast_expression "(code **)(puVar47 + 0x304644)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x304644)" ( (binary_expression "puVar47 + 0x304644" identifier + number_literal) ))))) ;) })))) (expression_statement "pPVar18 = (PrimitiveInfo *)(*pcVar48)(0x28);" (assignment_expression "pPVar18 = (PrimitiveInfo *)(*pcVar48)(0x28)" identifier = (cast_expression "(PrimitiveInfo *)(*pcVar48)(0x28)" ( (type_descriptor "PrimitiveInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar48)(0x28)" (parenthesized_expression "(*pcVar48)" ( (pointer_expression "*pcVar48" * identifier) )) (argument_list "(0x28)" ( number_literal ))))) ;) (expression_statement "pdVar11 = pdVar9;" (assignment_expression "pdVar11 = pdVar9" identifier = identifier) ;) (expression_statement "pPVar17 = pPVar18;" (assignment_expression "pPVar17 = pPVar18" identifier = identifier) ;) (do_statement "do {\n        pPVar36 = pPVar17;\n        pdVar12 = pdVar11;\n        pdVar11 = pdVar12 + 2;\n        sVar35 = *(size_t *)((int)pdVar12 + 4);\n        sVar49 = *(size_t *)(pdVar12 + 1);\n        sVar40 = *(size_t *)((int)pdVar12 + 0xc);\n        *(size_t *)&(pPVar36->point).x = *(size_t *)pdVar12;\n        *(size_t *)((int)&(pPVar36->point).x + 4) = sVar35;\n        *(size_t *)&(pPVar36->point).y = sVar49;\n        *(size_t *)((int)&(pPVar36->point).y + 4) = sVar40;\n        pPVar17 = (PrimitiveInfo *)&pPVar36->coordinates;\n      } while (pdVar11 != pdVar9 + 4);" do (compound_statement "{\n        pPVar36 = pPVar17;\n        pdVar12 = pdVar11;\n        pdVar11 = pdVar12 + 2;\n        sVar35 = *(size_t *)((int)pdVar12 + 4);\n        sVar49 = *(size_t *)(pdVar12 + 1);\n        sVar40 = *(size_t *)((int)pdVar12 + 0xc);\n        *(size_t *)&(pPVar36->point).x = *(size_t *)pdVar12;\n        *(size_t *)((int)&(pPVar36->point).x + 4) = sVar35;\n        *(size_t *)&(pPVar36->point).y = sVar49;\n        *(size_t *)((int)&(pPVar36->point).y + 4) = sVar40;\n        pPVar17 = (PrimitiveInfo *)&pPVar36->coordinates;\n      }" { (expression_statement "pPVar36 = pPVar17;" (assignment_expression "pPVar36 = pPVar17" identifier = identifier) ;) (expression_statement "pdVar12 = pdVar11;" (assignment_expression "pdVar12 = pdVar11" identifier = identifier) ;) (expression_statement "pdVar11 = pdVar12 + 2;" (assignment_expression "pdVar11 = pdVar12 + 2" identifier = (binary_expression "pdVar12 + 2" identifier + number_literal)) ;) (expression_statement "sVar35 = *(size_t *)((int)pdVar12 + 4);" (assignment_expression "sVar35 = *(size_t *)((int)pdVar12 + 4)" identifier = (pointer_expression "*(size_t *)((int)pdVar12 + 4)" * (cast_expression "(size_t *)((int)pdVar12 + 4)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar12 + 4)" ( (binary_expression "(int)pdVar12 + 4" (cast_expression "(int)pdVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "sVar49 = *(size_t *)(pdVar12 + 1);" (assignment_expression "sVar49 = *(size_t *)(pdVar12 + 1)" identifier = (pointer_expression "*(size_t *)(pdVar12 + 1)" * (cast_expression "(size_t *)(pdVar12 + 1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar12 + 1)" ( (binary_expression "pdVar12 + 1" identifier + number_literal) ))))) ;) (expression_statement "sVar40 = *(size_t *)((int)pdVar12 + 0xc);" (assignment_expression "sVar40 = *(size_t *)((int)pdVar12 + 0xc)" identifier = (pointer_expression "*(size_t *)((int)pdVar12 + 0xc)" * (cast_expression "(size_t *)((int)pdVar12 + 0xc)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar12 + 0xc)" ( (binary_expression "(int)pdVar12 + 0xc" (cast_expression "(int)pdVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(size_t *)&(pPVar36->point).x = *(size_t *)pdVar12;" (assignment_expression "*(size_t *)&(pPVar36->point).x = *(size_t *)pdVar12" (pointer_expression "*(size_t *)&(pPVar36->point).x" * (cast_expression "(size_t *)&(pPVar36->point).x" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pPVar36->point).x" & (field_expression "(pPVar36->point).x" (parenthesized_expression "(pPVar36->point)" ( (field_expression "pPVar36->point" identifier -> field_identifier) )) . field_identifier)))) = (pointer_expression "*(size_t *)pdVar12" * (cast_expression "(size_t *)pdVar12" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(size_t *)((int)&(pPVar36->point).x + 4) = sVar35;" (assignment_expression "*(size_t *)((int)&(pPVar36->point).x + 4) = sVar35" (pointer_expression "*(size_t *)((int)&(pPVar36->point).x + 4)" * (cast_expression "(size_t *)((int)&(pPVar36->point).x + 4)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pPVar36->point).x + 4)" ( (binary_expression "(int)&(pPVar36->point).x + 4" (cast_expression "(int)&(pPVar36->point).x" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pPVar36->point).x" & (field_expression "(pPVar36->point).x" (parenthesized_expression "(pPVar36->point)" ( (field_expression "pPVar36->point" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(size_t *)&(pPVar36->point).y = sVar49;" (assignment_expression "*(size_t *)&(pPVar36->point).y = sVar49" (pointer_expression "*(size_t *)&(pPVar36->point).y" * (cast_expression "(size_t *)&(pPVar36->point).y" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pPVar36->point).y" & (field_expression "(pPVar36->point).y" (parenthesized_expression "(pPVar36->point)" ( (field_expression "pPVar36->point" identifier -> field_identifier) )) . field_identifier)))) = identifier) ;) (expression_statement "*(size_t *)((int)&(pPVar36->point).y + 4) = sVar40;" (assignment_expression "*(size_t *)((int)&(pPVar36->point).y + 4) = sVar40" (pointer_expression "*(size_t *)((int)&(pPVar36->point).y + 4)" * (cast_expression "(size_t *)((int)&(pPVar36->point).y + 4)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pPVar36->point).y + 4)" ( (binary_expression "(int)&(pPVar36->point).y + 4" (cast_expression "(int)&(pPVar36->point).y" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pPVar36->point).y" & (field_expression "(pPVar36->point).y" (parenthesized_expression "(pPVar36->point)" ( (field_expression "pPVar36->point" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "pPVar17 = (PrimitiveInfo *)&pPVar36->coordinates;" (assignment_expression "pPVar17 = (PrimitiveInfo *)&pPVar36->coordinates" identifier = (cast_expression "(PrimitiveInfo *)&pPVar36->coordinates" ( (type_descriptor "PrimitiveInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pPVar36->coordinates" & (field_expression "pPVar36->coordinates" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(pdVar11 != pdVar9 + 4)" ( (binary_expression "pdVar11 != pdVar9 + 4" identifier != (binary_expression "pdVar9 + 4" identifier + number_literal)) )) ;) (expression_statement "PVar5 = *(PrimitiveType *)((int)pdVar12 + 0x14);" (assignment_expression "PVar5 = *(PrimitiveType *)((int)pdVar12 + 0x14)" identifier = (pointer_expression "*(PrimitiveType *)((int)pdVar12 + 0x14)" * (cast_expression "(PrimitiveType *)((int)pdVar12 + 0x14)" ( (type_descriptor "PrimitiveType *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar12 + 0x14)" ( (binary_expression "(int)pdVar12 + 0x14" (cast_expression "(int)pdVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pcVar48 = *(code **)(puVar47 + 0x3042b0);" (assignment_expression "pcVar48 = *(code **)(puVar47 + 0x3042b0)" identifier = (pointer_expression "*(code **)(puVar47 + 0x3042b0)" * (cast_expression "(code **)(puVar47 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3042b0)" ( (binary_expression "puVar47 + 0x3042b0" identifier + number_literal) ))))) ;) (expression_statement "pPVar36->coordinates = *(size_t *)pdVar11;" (assignment_expression "pPVar36->coordinates = *(size_t *)pdVar11" (field_expression "pPVar36->coordinates" identifier -> field_identifier) = (pointer_expression "*(size_t *)pdVar11" * (cast_expression "(size_t *)pdVar11" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pPVar36->primitive = PVar5;" (assignment_expression "pPVar36->primitive = PVar5" (field_expression "pPVar36->primitive" identifier -> field_identifier) = identifier) ;) (expression_statement "pPVar18->coordinates = 0;" (assignment_expression "pPVar18->coordinates = 0" (field_expression "pPVar18->coordinates" identifier -> field_identifier) = number_literal) ;) (expression_statement "(*pcVar48)(pdVar9);" (call_expression "(*pcVar48)(pdVar9)" (parenthesized_expression "(*pcVar48)" ( (pointer_expression "*pcVar48" * identifier) )) (argument_list "(pdVar9)" ( identifier ))) ;) (goto_statement "goto LAB_000a61cc;" goto statement_identifier ;) })) (expression_statement "uVar37 = 0x1c57;" (assignment_expression "uVar37 = 0x1c57" identifier = number_literal) ;) (labeled_statement "LAB_000a5724:\n    (**(code **)(puVar47 + 0x304210))\n              (exception,*(int *)(puVar47 + 0x303bd8) + 0x38b0,*(int *)(puVar47 + 0x303bd8) + 0x45c8\n               ,uVar37,400,*(int *)(puVar47 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar47 + 0x303bd0) + 0x3e28,*(int *)(puVar47 + 0x303bd4) + -0x3688);" statement_identifier : (expression_statement "(**(code **)(puVar47 + 0x304210))\n              (exception,*(int *)(puVar47 + 0x303bd8) + 0x38b0,*(int *)(puVar47 + 0x303bd8) + 0x45c8\n               ,uVar37,400,*(int *)(puVar47 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar47 + 0x303bd0) + 0x3e28,*(int *)(puVar47 + 0x303bd4) + -0x3688);" (call_expression "(**(code **)(puVar47 + 0x304210))\n              (exception,*(int *)(puVar47 + 0x303bd8) + 0x38b0,*(int *)(puVar47 + 0x303bd8) + 0x45c8\n               ,uVar37,400,*(int *)(puVar47 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar47 + 0x303bd0) + 0x3e28,*(int *)(puVar47 + 0x303bd4) + -0x3688)" (parenthesized_expression "(**(code **)(puVar47 + 0x304210))" ( (pointer_expression "**(code **)(puVar47 + 0x304210)" * (pointer_expression "*(code **)(puVar47 + 0x304210)" * (cast_expression "(code **)(puVar47 + 0x304210)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x304210)" ( (binary_expression "puVar47 + 0x304210" identifier + number_literal) ))))) )) (argument_list "(exception,*(int *)(puVar47 + 0x303bd8) + 0x38b0,*(int *)(puVar47 + 0x303bd8) + 0x45c8\n               ,uVar37,400,*(int *)(puVar47 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar47 + 0x303bd0) + 0x3e28,*(int *)(puVar47 + 0x303bd4) + -0x3688)" ( identifier , (binary_expression "*(int *)(puVar47 + 0x303bd8) + 0x38b0" (pointer_expression "*(int *)(puVar47 + 0x303bd8)" * (cast_expression "(int *)(puVar47 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x303bd8)" ( (binary_expression "puVar47 + 0x303bd8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar47 + 0x303bd8) + 0x45c8" (pointer_expression "*(int *)(puVar47 + 0x303bd8)" * (cast_expression "(int *)(puVar47 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x303bd8)" ( (binary_expression "puVar47 + 0x303bd8" identifier + number_literal) )))) + number_literal) , identifier , number_literal , (binary_expression "*(int *)(puVar47 + 0x303bd0) + 0x16f8" (pointer_expression "*(int *)(puVar47 + 0x303bd0)" * (cast_expression "(int *)(puVar47 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x303bd0)" ( (binary_expression "puVar47 + 0x303bd0" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar47 + 0x303bd0) + 0x3e28" (pointer_expression "*(int *)(puVar47 + 0x303bd0)" * (cast_expression "(int *)(puVar47 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x303bd0)" ( (binary_expression "puVar47 + 0x303bd0" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar47 + 0x303bd4) + -0x3688" (pointer_expression "*(int *)(puVar47 + 0x303bd4)" * (cast_expression "(int *)(puVar47 + 0x303bd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x303bd4)" ( (binary_expression "puVar47 + 0x303bd4" identifier + number_literal) )))) + number_literal) ))) ;)) (expression_statement "MStack_1d0 = MagickFalse;" (assignment_expression "MStack_1d0 = MagickFalse" identifier = identifier) ;) (goto_statement "goto LAB_000a5774;" goto statement_identifier ;) })) (expression_statement "MStack_1d0 = MagickTrue;" (assignment_expression "MStack_1d0 = MagickTrue" identifier = identifier) ;) (labeled_statement "LAB_000a5774:\n  pcVar48 = *(code **)(puVar47 + 0x3042d8);" statement_identifier : (expression_statement "pcVar48 = *(code **)(puVar47 + 0x3042d8);" (assignment_expression "pcVar48 = *(code **)(puVar47 + 0x3042d8)" identifier = (pointer_expression "*(code **)(puVar47 + 0x3042d8)" * (cast_expression "(code **)(puVar47 + 0x3042d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3042d8)" ( (binary_expression "puVar47 + 0x3042d8" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_000a5778:\n  (*pcVar48)(draw_info_00);" statement_identifier : (expression_statement "(*pcVar48)(draw_info_00);" (call_expression "(*pcVar48)(draw_info_00)" (parenthesized_expression "(*pcVar48)" ( (pointer_expression "*pcVar48" * identifier) )) (argument_list "(draw_info_00)" ( identifier ))) ;)) (if_statement "if (image_00->debug != MagickFalse) {\n    (**(code **)(puVar47 + 0x3044d0))\n              (0x80,*(int *)(puVar47 + 0x303bd8) + 0x38b0,*(int *)(puVar47 + 0x303bd8) + 0x45dc,\n               0x16b4,*(int *)(puVar47 + 0x303bd8) + 0x3df8);\n  }" if (parenthesized_expression "(image_00->debug != MagickFalse)" ( (binary_expression "image_00->debug != MagickFalse" (field_expression "image_00->debug" identifier -> field_identifier) != identifier) )) (compound_statement "{\n    (**(code **)(puVar47 + 0x3044d0))\n              (0x80,*(int *)(puVar47 + 0x303bd8) + 0x38b0,*(int *)(puVar47 + 0x303bd8) + 0x45dc,\n               0x16b4,*(int *)(puVar47 + 0x303bd8) + 0x3df8);\n  }" { (expression_statement "(**(code **)(puVar47 + 0x3044d0))\n              (0x80,*(int *)(puVar47 + 0x303bd8) + 0x38b0,*(int *)(puVar47 + 0x303bd8) + 0x45dc,\n               0x16b4,*(int *)(puVar47 + 0x303bd8) + 0x3df8);" (call_expression "(**(code **)(puVar47 + 0x3044d0))\n              (0x80,*(int *)(puVar47 + 0x303bd8) + 0x38b0,*(int *)(puVar47 + 0x303bd8) + 0x45dc,\n               0x16b4,*(int *)(puVar47 + 0x303bd8) + 0x3df8)" (parenthesized_expression "(**(code **)(puVar47 + 0x3044d0))" ( (pointer_expression "**(code **)(puVar47 + 0x3044d0)" * (pointer_expression "*(code **)(puVar47 + 0x3044d0)" * (cast_expression "(code **)(puVar47 + 0x3044d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3044d0)" ( (binary_expression "puVar47 + 0x3044d0" identifier + number_literal) ))))) )) (argument_list "(0x80,*(int *)(puVar47 + 0x303bd8) + 0x38b0,*(int *)(puVar47 + 0x303bd8) + 0x45dc,\n               0x16b4,*(int *)(puVar47 + 0x303bd8) + 0x3df8)" ( number_literal , (binary_expression "*(int *)(puVar47 + 0x303bd8) + 0x38b0" (pointer_expression "*(int *)(puVar47 + 0x303bd8)" * (cast_expression "(int *)(puVar47 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x303bd8)" ( (binary_expression "puVar47 + 0x303bd8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar47 + 0x303bd8) + 0x45dc" (pointer_expression "*(int *)(puVar47 + 0x303bd8)" * (cast_expression "(int *)(puVar47 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x303bd8)" ( (binary_expression "puVar47 + 0x303bd8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar47 + 0x303bd8) + 0x3df8" (pointer_expression "*(int *)(puVar47 + 0x303bd8)" * (cast_expression "(int *)(puVar47 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x303bd8)" ( (binary_expression "puVar47 + 0x303bd8" identifier + number_literal) )))) + number_literal) ))) ;) })) (return_statement "return MStack_1d0;" return identifier ;) (labeled_statement "LAB_000a5a58:\n  iVar13 = iVar46 + 1;" statement_identifier : (expression_statement "iVar13 = iVar46 + 1;" (assignment_expression "iVar13 = iVar46 + 1" identifier = (binary_expression "iVar46 + 1" identifier + number_literal)) ;)) (expression_statement "iVar46 = iVar46 << 4;" (assignment_expression "iVar46 = iVar46 << 4" identifier = (binary_expression "iVar46 << 4" identifier << number_literal)) ;) (expression_statement "iVar27 = iVar44 << 4;" (assignment_expression "iVar27 = iVar44 << 4" identifier = (binary_expression "iVar44 << 4" identifier << number_literal)) ;) (expression_statement "iVar44 = iVar44 + 1 + iVar13;" (assignment_expression "iVar44 = iVar44 + 1 + iVar13" identifier = (binary_expression "iVar44 + 1 + iVar13" (binary_expression "iVar44 + 1" identifier + number_literal) + identifier)) ;) (labeled_statement "LAB_000a5a70:\n  pcVar48 = *(code **)(puVar47 + 0x3047fc);" statement_identifier : (expression_statement "pcVar48 = *(code **)(puVar47 + 0x3047fc);" (assignment_expression "pcVar48 = *(code **)(puVar47 + 0x3047fc)" identifier = (pointer_expression "*(code **)(puVar47 + 0x3047fc)" * (cast_expression "(code **)(puVar47 + 0x3047fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3047fc)" ( (binary_expression "puVar47 + 0x3047fc" identifier + number_literal) ))))) ;)) (expression_statement "iVar44 = iStack_188 * 2 + iVar44;" (assignment_expression "iVar44 = iStack_188 * 2 + iVar44" identifier = (binary_expression "iStack_188 * 2 + iVar44" (binary_expression "iStack_188 * 2" identifier * number_literal) + identifier)) ;) (expression_statement "*(double *)((int)pdVar11 + iVar46) = dStack_250;" (assignment_expression "*(double *)((int)pdVar11 + iVar46) = dStack_250" (pointer_expression "*(double *)((int)pdVar11 + iVar46)" * (cast_expression "(double *)((int)pdVar11 + iVar46)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar11 + iVar46)" ( (binary_expression "(int)pdVar11 + iVar46" (cast_expression "(int)pdVar11" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (expression_statement "((double *)((int)pdVar11 + iVar46))[1] = dStack_248;" (assignment_expression "((double *)((int)pdVar11 + iVar46))[1] = dStack_248" (subscript_expression "((double *)((int)pdVar11 + iVar46))[1]" (parenthesized_expression "((double *)((int)pdVar11 + iVar46))" ( (cast_expression "(double *)((int)pdVar11 + iVar46)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar11 + iVar46)" ( (binary_expression "(int)pdVar11 + iVar46" (cast_expression "(int)pdVar11" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))) )) [ number_literal ]) = identifier) ;) (expression_statement "*(double *)((int)pdVar12 + iVar27) = dStack_240;" (assignment_expression "*(double *)((int)pdVar12 + iVar27) = dStack_240" (pointer_expression "*(double *)((int)pdVar12 + iVar27)" * (cast_expression "(double *)((int)pdVar12 + iVar27)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar12 + iVar27)" ( (binary_expression "(int)pdVar12 + iVar27" (cast_expression "(int)pdVar12" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (expression_statement "((double *)((int)pdVar12 + iVar27))[1] = dStack_238;" (assignment_expression "((double *)((int)pdVar12 + iVar27))[1] = dStack_238" (subscript_expression "((double *)((int)pdVar12 + iVar27))[1]" (parenthesized_expression "((double *)((int)pdVar12 + iVar27))" ( (cast_expression "(double *)((int)pdVar12 + iVar27)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar12 + iVar27)" ( (binary_expression "(int)pdVar12 + iVar27" (cast_expression "(int)pdVar12" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))) )) [ number_literal ]) = identifier) ;) (expression_statement "pPVar18 = (PrimitiveInfo *)(*pcVar48)(iVar44 + 2,0x28);" (assignment_expression "pPVar18 = (PrimitiveInfo *)(*pcVar48)(iVar44 + 2,0x28)" identifier = (cast_expression "(PrimitiveInfo *)(*pcVar48)(iVar44 + 2,0x28)" ( (type_descriptor "PrimitiveInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar48)(iVar44 + 2,0x28)" (parenthesized_expression "(*pcVar48)" ( (pointer_expression "*pcVar48" * identifier) )) (argument_list "(iVar44 + 2,0x28)" ( (binary_expression "iVar44 + 2" identifier + number_literal) , number_literal ))))) ;) (if_statement "if (pPVar18 == (PrimitiveInfo *)0x0) {\n    (**(code **)(puVar47 + 0x304210))\n              (exception,*(int *)(puVar47 + 0x303bd8) + 0x38b0,*(int *)(puVar47 + 0x303bd8) + 0x45c8\n               ,0x1dbc,400,*(int *)(puVar47 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar47 + 0x303bd0) + 0x3e28,*(int *)(puVar47 + 0x303bd4) + -0x3688);\n    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\n    (**(code **)(puVar47 + 0x3042b0))(pdVar9);\n    MStack_1d0 = MagickFalse;\n    goto LAB_000a5774;\n  }" if (parenthesized_expression "(pPVar18 == (PrimitiveInfo *)0x0)" ( (binary_expression "pPVar18 == (PrimitiveInfo *)0x0" identifier == (cast_expression "(PrimitiveInfo *)0x0" ( (type_descriptor "PrimitiveInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(puVar47 + 0x304210))\n              (exception,*(int *)(puVar47 + 0x303bd8) + 0x38b0,*(int *)(puVar47 + 0x303bd8) + 0x45c8\n               ,0x1dbc,400,*(int *)(puVar47 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar47 + 0x303bd0) + 0x3e28,*(int *)(puVar47 + 0x303bd4) + -0x3688);\n    (**(code **)(puVar47 + 0x3042b0))(pdVar11);\n    (**(code **)(puVar47 + 0x3042b0))(pdVar12);\n    (**(code **)(puVar47 + 0x3042b0))(pdVar9);\n    MStack_1d0 = MagickFalse;\n    goto LAB_000a5774;\n  }" { (expression_statement "(**(code **)(puVar47 + 0x304210))\n              (exception,*(int *)(puVar47 + 0x303bd8) + 0x38b0,*(int *)(puVar47 + 0x303bd8) + 0x45c8\n               ,0x1dbc,400,*(int *)(puVar47 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar47 + 0x303bd0) + 0x3e28,*(int *)(puVar47 + 0x303bd4) + -0x3688);" (call_expression "(**(code **)(puVar47 + 0x304210))\n              (exception,*(int *)(puVar47 + 0x303bd8) + 0x38b0,*(int *)(puVar47 + 0x303bd8) + 0x45c8\n               ,0x1dbc,400,*(int *)(puVar47 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar47 + 0x303bd0) + 0x3e28,*(int *)(puVar47 + 0x303bd4) + -0x3688)" (parenthesized_expression "(**(code **)(puVar47 + 0x304210))" ( (pointer_expression "**(code **)(puVar47 + 0x304210)" * (pointer_expression "*(code **)(puVar47 + 0x304210)" * (cast_expression "(code **)(puVar47 + 0x304210)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x304210)" ( (binary_expression "puVar47 + 0x304210" identifier + number_literal) ))))) )) (argument_list "(exception,*(int *)(puVar47 + 0x303bd8) + 0x38b0,*(int *)(puVar47 + 0x303bd8) + 0x45c8\n               ,0x1dbc,400,*(int *)(puVar47 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar47 + 0x303bd0) + 0x3e28,*(int *)(puVar47 + 0x303bd4) + -0x3688)" ( identifier , (binary_expression "*(int *)(puVar47 + 0x303bd8) + 0x38b0" (pointer_expression "*(int *)(puVar47 + 0x303bd8)" * (cast_expression "(int *)(puVar47 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x303bd8)" ( (binary_expression "puVar47 + 0x303bd8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar47 + 0x303bd8) + 0x45c8" (pointer_expression "*(int *)(puVar47 + 0x303bd8)" * (cast_expression "(int *)(puVar47 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x303bd8)" ( (binary_expression "puVar47 + 0x303bd8" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , (binary_expression "*(int *)(puVar47 + 0x303bd0) + 0x16f8" (pointer_expression "*(int *)(puVar47 + 0x303bd0)" * (cast_expression "(int *)(puVar47 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x303bd0)" ( (binary_expression "puVar47 + 0x303bd0" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar47 + 0x303bd0) + 0x3e28" (pointer_expression "*(int *)(puVar47 + 0x303bd0)" * (cast_expression "(int *)(puVar47 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x303bd0)" ( (binary_expression "puVar47 + 0x303bd0" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar47 + 0x303bd4) + -0x3688" (pointer_expression "*(int *)(puVar47 + 0x303bd4)" * (cast_expression "(int *)(puVar47 + 0x303bd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar47 + 0x303bd4)" ( (binary_expression "puVar47 + 0x303bd4" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar47 + 0x3042b0))(pdVar11);" (call_expression "(**(code **)(puVar47 + 0x3042b0))(pdVar11)" (parenthesized_expression "(**(code **)(puVar47 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar47 + 0x3042b0)" * (pointer_expression "*(code **)(puVar47 + 0x3042b0)" * (cast_expression "(code **)(puVar47 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3042b0)" ( (binary_expression "puVar47 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar11)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar47 + 0x3042b0))(pdVar12);" (call_expression "(**(code **)(puVar47 + 0x3042b0))(pdVar12)" (parenthesized_expression "(**(code **)(puVar47 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar47 + 0x3042b0)" * (pointer_expression "*(code **)(puVar47 + 0x3042b0)" * (cast_expression "(code **)(puVar47 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3042b0)" ( (binary_expression "puVar47 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar12)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar47 + 0x3042b0))(pdVar9);" (call_expression "(**(code **)(puVar47 + 0x3042b0))(pdVar9)" (parenthesized_expression "(**(code **)(puVar47 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar47 + 0x3042b0)" * (pointer_expression "*(code **)(puVar47 + 0x3042b0)" * (cast_expression "(code **)(puVar47 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3042b0)" ( (binary_expression "puVar47 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar9)" ( identifier ))) ;) (expression_statement "MStack_1d0 = MagickFalse;" (assignment_expression "MStack_1d0 = MagickFalse" identifier = identifier) ;) (goto_statement "goto LAB_000a5774;" goto statement_identifier ;) })) (expression_statement "pdVar43 = pdVar9 + 4;" (assignment_expression "pdVar43 = pdVar9 + 4" identifier = (binary_expression "pdVar9 + 4" identifier + number_literal)) ;) (expression_statement "pdVar16 = pdVar9;" (assignment_expression "pdVar16 = pdVar9" identifier = identifier) ;) (expression_statement "pPVar17 = pPVar18;" (assignment_expression "pPVar17 = pPVar18" identifier = identifier) ;) (expression_statement "pdVar28 = pdVar11;" (assignment_expression "pdVar28 = pdVar11" identifier = identifier) ;) (expression_statement "pPVar36 = pPVar18;" (assignment_expression "pPVar36 = pPVar18" identifier = identifier) ;) (do_statement "do {\n    do {\n      pPVar29 = pPVar17;\n      pdVar15 = pdVar16 + 2;\n      sVar35 = *(size_t *)((int)pdVar16 + 4);\n      sVar49 = *(size_t *)(pdVar16 + 1);\n      sVar40 = *(size_t *)((int)pdVar16 + 0xc);\n      *(size_t *)&(pPVar29->point).x = *(size_t *)pdVar16;\n      *(size_t *)((int)&(pPVar29->point).x + 4) = sVar35;\n      *(size_t *)&(pPVar29->point).y = sVar49;\n      *(size_t *)((int)&(pPVar29->point).y + 4) = sVar40;\n      pdVar16 = pdVar15;\n      pPVar17 = (PrimitiveInfo *)&pPVar29->coordinates;\n    } while (pdVar15 != pdVar43);\n    pdVar15 = pdVar28 + 2;\n    PVar5 = *(PrimitiveType *)((int)pdVar9 + 0x24);\n    pPVar29->coordinates = *(size_t *)pdVar43;\n    pPVar29->primitive = PVar5;\n    uVar39 = *(undefined4 *)((int)pdVar28 + 4);\n    uVar38 = *(undefined4 *)(pdVar28 + 1);\n    uVar37 = *(undefined4 *)((int)pdVar28 + 0xc);\n    *(undefined4 *)&(pPVar36->point).x = *(undefined4 *)pdVar28;\n    *(undefined4 *)((int)&(pPVar36->point).x + 4) = uVar39;\n    *(undefined4 *)&(pPVar36->point).y = uVar38;\n    *(undefined4 *)((int)&(pPVar36->point).y + 4) = uVar37;\n    pdVar16 = pdVar9;\n    pPVar17 = pPVar36 + 1;\n    pdVar28 = pdVar15;\n    pPVar36 = pPVar36 + 1;\n  } while (pdVar11 + iVar13 * 2 != pdVar15);" do (compound_statement "{\n    do {\n      pPVar29 = pPVar17;\n      pdVar15 = pdVar16 + 2;\n      sVar35 = *(size_t *)((int)pdVar16 + 4);\n      sVar49 = *(size_t *)(pdVar16 + 1);\n      sVar40 = *(size_t *)((int)pdVar16 + 0xc);\n      *(size_t *)&(pPVar29->point).x = *(size_t *)pdVar16;\n      *(size_t *)((int)&(pPVar29->point).x + 4) = sVar35;\n      *(size_t *)&(pPVar29->point).y = sVar49;\n      *(size_t *)((int)&(pPVar29->point).y + 4) = sVar40;\n      pdVar16 = pdVar15;\n      pPVar17 = (PrimitiveInfo *)&pPVar29->coordinates;\n    } while (pdVar15 != pdVar43);\n    pdVar15 = pdVar28 + 2;\n    PVar5 = *(PrimitiveType *)((int)pdVar9 + 0x24);\n    pPVar29->coordinates = *(size_t *)pdVar43;\n    pPVar29->primitive = PVar5;\n    uVar39 = *(undefined4 *)((int)pdVar28 + 4);\n    uVar38 = *(undefined4 *)(pdVar28 + 1);\n    uVar37 = *(undefined4 *)((int)pdVar28 + 0xc);\n    *(undefined4 *)&(pPVar36->point).x = *(undefined4 *)pdVar28;\n    *(undefined4 *)((int)&(pPVar36->point).x + 4) = uVar39;\n    *(undefined4 *)&(pPVar36->point).y = uVar38;\n    *(undefined4 *)((int)&(pPVar36->point).y + 4) = uVar37;\n    pdVar16 = pdVar9;\n    pPVar17 = pPVar36 + 1;\n    pdVar28 = pdVar15;\n    pPVar36 = pPVar36 + 1;\n  }" { (do_statement "do {\n      pPVar29 = pPVar17;\n      pdVar15 = pdVar16 + 2;\n      sVar35 = *(size_t *)((int)pdVar16 + 4);\n      sVar49 = *(size_t *)(pdVar16 + 1);\n      sVar40 = *(size_t *)((int)pdVar16 + 0xc);\n      *(size_t *)&(pPVar29->point).x = *(size_t *)pdVar16;\n      *(size_t *)((int)&(pPVar29->point).x + 4) = sVar35;\n      *(size_t *)&(pPVar29->point).y = sVar49;\n      *(size_t *)((int)&(pPVar29->point).y + 4) = sVar40;\n      pdVar16 = pdVar15;\n      pPVar17 = (PrimitiveInfo *)&pPVar29->coordinates;\n    } while (pdVar15 != pdVar43);" do (compound_statement "{\n      pPVar29 = pPVar17;\n      pdVar15 = pdVar16 + 2;\n      sVar35 = *(size_t *)((int)pdVar16 + 4);\n      sVar49 = *(size_t *)(pdVar16 + 1);\n      sVar40 = *(size_t *)((int)pdVar16 + 0xc);\n      *(size_t *)&(pPVar29->point).x = *(size_t *)pdVar16;\n      *(size_t *)((int)&(pPVar29->point).x + 4) = sVar35;\n      *(size_t *)&(pPVar29->point).y = sVar49;\n      *(size_t *)((int)&(pPVar29->point).y + 4) = sVar40;\n      pdVar16 = pdVar15;\n      pPVar17 = (PrimitiveInfo *)&pPVar29->coordinates;\n    }" { (expression_statement "pPVar29 = pPVar17;" (assignment_expression "pPVar29 = pPVar17" identifier = identifier) ;) (expression_statement "pdVar15 = pdVar16 + 2;" (assignment_expression "pdVar15 = pdVar16 + 2" identifier = (binary_expression "pdVar16 + 2" identifier + number_literal)) ;) (expression_statement "sVar35 = *(size_t *)((int)pdVar16 + 4);" (assignment_expression "sVar35 = *(size_t *)((int)pdVar16 + 4)" identifier = (pointer_expression "*(size_t *)((int)pdVar16 + 4)" * (cast_expression "(size_t *)((int)pdVar16 + 4)" ( (type_descriptor "size_t *" primitive_type (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) ))))) ;) (expression_statement "sVar49 = *(size_t *)(pdVar16 + 1);" (assignment_expression "sVar49 = *(size_t *)(pdVar16 + 1)" identifier = (pointer_expression "*(size_t *)(pdVar16 + 1)" * (cast_expression "(size_t *)(pdVar16 + 1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 1)" ( (binary_expression "pdVar16 + 1" identifier + number_literal) ))))) ;) (expression_statement "sVar40 = *(size_t *)((int)pdVar16 + 0xc);" (assignment_expression "sVar40 = *(size_t *)((int)pdVar16 + 0xc)" identifier = (pointer_expression "*(size_t *)((int)pdVar16 + 0xc)" * (cast_expression "(size_t *)((int)pdVar16 + 0xc)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + 0xc)" ( (binary_expression "(int)pdVar16 + 0xc" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(size_t *)&(pPVar29->point).x = *(size_t *)pdVar16;" (assignment_expression "*(size_t *)&(pPVar29->point).x = *(size_t *)pdVar16" (pointer_expression "*(size_t *)&(pPVar29->point).x" * (cast_expression "(size_t *)&(pPVar29->point).x" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pPVar29->point).x" & (field_expression "(pPVar29->point).x" (parenthesized_expression "(pPVar29->point)" ( (field_expression "pPVar29->point" identifier -> field_identifier) )) . field_identifier)))) = (pointer_expression "*(size_t *)pdVar16" * (cast_expression "(size_t *)pdVar16" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(size_t *)((int)&(pPVar29->point).x + 4) = sVar35;" (assignment_expression "*(size_t *)((int)&(pPVar29->point).x + 4) = sVar35" (pointer_expression "*(size_t *)((int)&(pPVar29->point).x + 4)" * (cast_expression "(size_t *)((int)&(pPVar29->point).x + 4)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pPVar29->point).x + 4)" ( (binary_expression "(int)&(pPVar29->point).x + 4" (cast_expression "(int)&(pPVar29->point).x" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pPVar29->point).x" & (field_expression "(pPVar29->point).x" (parenthesized_expression "(pPVar29->point)" ( (field_expression "pPVar29->point" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(size_t *)&(pPVar29->point).y = sVar49;" (assignment_expression "*(size_t *)&(pPVar29->point).y = sVar49" (pointer_expression "*(size_t *)&(pPVar29->point).y" * (cast_expression "(size_t *)&(pPVar29->point).y" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pPVar29->point).y" & (field_expression "(pPVar29->point).y" (parenthesized_expression "(pPVar29->point)" ( (field_expression "pPVar29->point" identifier -> field_identifier) )) . field_identifier)))) = identifier) ;) (expression_statement "*(size_t *)((int)&(pPVar29->point).y + 4) = sVar40;" (assignment_expression "*(size_t *)((int)&(pPVar29->point).y + 4) = sVar40" (pointer_expression "*(size_t *)((int)&(pPVar29->point).y + 4)" * (cast_expression "(size_t *)((int)&(pPVar29->point).y + 4)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pPVar29->point).y + 4)" ( (binary_expression "(int)&(pPVar29->point).y + 4" (cast_expression "(int)&(pPVar29->point).y" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pPVar29->point).y" & (field_expression "(pPVar29->point).y" (parenthesized_expression "(pPVar29->point)" ( (field_expression "pPVar29->point" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "pdVar16 = pdVar15;" (assignment_expression "pdVar16 = pdVar15" identifier = identifier) ;) (expression_statement "pPVar17 = (PrimitiveInfo *)&pPVar29->coordinates;" (assignment_expression "pPVar17 = (PrimitiveInfo *)&pPVar29->coordinates" identifier = (cast_expression "(PrimitiveInfo *)&pPVar29->coordinates" ( (type_descriptor "PrimitiveInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pPVar29->coordinates" & (field_expression "pPVar29->coordinates" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(pdVar15 != pdVar43)" ( (binary_expression "pdVar15 != pdVar43" identifier != identifier) )) ;) (expression_statement "pdVar15 = pdVar28 + 2;" (assignment_expression "pdVar15 = pdVar28 + 2" identifier = (binary_expression "pdVar28 + 2" identifier + number_literal)) ;) (expression_statement "PVar5 = *(PrimitiveType *)((int)pdVar9 + 0x24);" (assignment_expression "PVar5 = *(PrimitiveType *)((int)pdVar9 + 0x24)" identifier = (pointer_expression "*(PrimitiveType *)((int)pdVar9 + 0x24)" * (cast_expression "(PrimitiveType *)((int)pdVar9 + 0x24)" ( (type_descriptor "PrimitiveType *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar9 + 0x24)" ( (binary_expression "(int)pdVar9 + 0x24" (cast_expression "(int)pdVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pPVar29->coordinates = *(size_t *)pdVar43;" (assignment_expression "pPVar29->coordinates = *(size_t *)pdVar43" (field_expression "pPVar29->coordinates" identifier -> field_identifier) = (pointer_expression "*(size_t *)pdVar43" * (cast_expression "(size_t *)pdVar43" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pPVar29->primitive = PVar5;" (assignment_expression "pPVar29->primitive = PVar5" (field_expression "pPVar29->primitive" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar39 = *(undefined4 *)((int)pdVar28 + 4);" (assignment_expression "uVar39 = *(undefined4 *)((int)pdVar28 + 4)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar28 + 4)" * (cast_expression "(undefined4 *)((int)pdVar28 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar28 + 4)" ( (binary_expression "(int)pdVar28 + 4" (cast_expression "(int)pdVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar38 = *(undefined4 *)(pdVar28 + 1);" (assignment_expression "uVar38 = *(undefined4 *)(pdVar28 + 1)" identifier = (pointer_expression "*(undefined4 *)(pdVar28 + 1)" * (cast_expression "(undefined4 *)(pdVar28 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar28 + 1)" ( (binary_expression "pdVar28 + 1" identifier + number_literal) ))))) ;) (expression_statement "uVar37 = *(undefined4 *)((int)pdVar28 + 0xc);" (assignment_expression "uVar37 = *(undefined4 *)((int)pdVar28 + 0xc)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar28 + 0xc)" * (cast_expression "(undefined4 *)((int)pdVar28 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar28 + 0xc)" ( (binary_expression "(int)pdVar28 + 0xc" (cast_expression "(int)pdVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)&(pPVar36->point).x = *(undefined4 *)pdVar28;" (assignment_expression "*(undefined4 *)&(pPVar36->point).x = *(undefined4 *)pdVar28" (pointer_expression "*(undefined4 *)&(pPVar36->point).x" * (cast_expression "(undefined4 *)&(pPVar36->point).x" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pPVar36->point).x" & (field_expression "(pPVar36->point).x" (parenthesized_expression "(pPVar36->point)" ( (field_expression "pPVar36->point" identifier -> field_identifier) )) . field_identifier)))) = (pointer_expression "*(undefined4 *)pdVar28" * (cast_expression "(undefined4 *)pdVar28" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)((int)&(pPVar36->point).x + 4) = uVar39;" (assignment_expression "*(undefined4 *)((int)&(pPVar36->point).x + 4) = uVar39" (pointer_expression "*(undefined4 *)((int)&(pPVar36->point).x + 4)" * (cast_expression "(undefined4 *)((int)&(pPVar36->point).x + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pPVar36->point).x + 4)" ( (binary_expression "(int)&(pPVar36->point).x + 4" (cast_expression "(int)&(pPVar36->point).x" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pPVar36->point).x" & (field_expression "(pPVar36->point).x" (parenthesized_expression "(pPVar36->point)" ( (field_expression "pPVar36->point" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)&(pPVar36->point).y = uVar38;" (assignment_expression "*(undefined4 *)&(pPVar36->point).y = uVar38" (pointer_expression "*(undefined4 *)&(pPVar36->point).y" * (cast_expression "(undefined4 *)&(pPVar36->point).y" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pPVar36->point).y" & (field_expression "(pPVar36->point).y" (parenthesized_expression "(pPVar36->point)" ( (field_expression "pPVar36->point" identifier -> field_identifier) )) . field_identifier)))) = identifier) ;) (expression_statement "*(undefined4 *)((int)&(pPVar36->point).y + 4) = uVar37;" (assignment_expression "*(undefined4 *)((int)&(pPVar36->point).y + 4) = uVar37" (pointer_expression "*(undefined4 *)((int)&(pPVar36->point).y + 4)" * (cast_expression "(undefined4 *)((int)&(pPVar36->point).y + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pPVar36->point).y + 4)" ( (binary_expression "(int)&(pPVar36->point).y + 4" (cast_expression "(int)&(pPVar36->point).y" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pPVar36->point).y" & (field_expression "(pPVar36->point).y" (parenthesized_expression "(pPVar36->point)" ( (field_expression "pPVar36->point" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "pdVar16 = pdVar9;" (assignment_expression "pdVar16 = pdVar9" identifier = identifier) ;) (expression_statement "pPVar17 = pPVar36 + 1;" (assignment_expression "pPVar17 = pPVar36 + 1" identifier = (binary_expression "pPVar36 + 1" identifier + number_literal)) ;) (expression_statement "pdVar28 = pdVar15;" (assignment_expression "pdVar28 = pdVar15" identifier = identifier) ;) (expression_statement "pPVar36 = pPVar36 + 1;" (assignment_expression "pPVar36 = pPVar36 + 1" identifier = (binary_expression "pPVar36 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pdVar11 + iVar13 * 2 != pdVar15)" ( (binary_expression "pdVar11 + iVar13 * 2 != pdVar15" (binary_expression "pdVar11 + iVar13 * 2" identifier + (binary_expression "iVar13 * 2" identifier * number_literal)) != identifier) )) ;) (expression_statement "pPVar36 = pPVar18 + iVar13;" (assignment_expression "pPVar36 = pPVar18 + iVar13" identifier = (binary_expression "pPVar18 + iVar13" identifier + identifier)) ;) (expression_statement "pPVar17 = pPVar36;" (assignment_expression "pPVar17 = pPVar36" identifier = identifier) ;) (if_statement "if (bVar2) {\n    do {\n      pPVar29 = pPVar17;\n      pdVar28 = pdVar16 + 2;\n      sVar35 = *(size_t *)((int)pdVar16 + 4);\n      sVar49 = *(size_t *)(pdVar16 + 1);\n      sVar40 = *(size_t *)((int)pdVar16 + 0xc);\n      *(size_t *)&(pPVar29->point).x = *(size_t *)pdVar16;\n      *(size_t *)((int)&(pPVar29->point).x + 4) = sVar35;\n      *(size_t *)&(pPVar29->point).y = sVar49;\n      *(size_t *)((int)&(pPVar29->point).y + 4) = sVar40;\n      pdVar16 = pdVar28;\n      pPVar17 = (PrimitiveInfo *)&pPVar29->coordinates;\n    } while (pdVar28 != pdVar43);\n    iVar13 = iVar13 + 1;\n    PVar5 = *(PrimitiveType *)((int)pdVar9 + 0x24);\n    pPVar29->coordinates = *(size_t *)(pdVar9 + 4);\n    pPVar29->primitive = PVar5;\n    uVar39 = *(undefined4 *)((int)&(pPVar18->point).x + 4);\n    uVar38 = *(undefined4 *)&(pPVar18->point).y;\n    uVar37 = *(undefined4 *)((int)&(pPVar18->point).y + 4);\n    pPVar17 = pPVar18 + iVar13;\n    *(undefined4 *)&(pPVar36->point).x = *(undefined4 *)&(pPVar18->point).x;\n    *(undefined4 *)((int)&(pPVar36->point).x + 4) = uVar39;\n    *(undefined4 *)&(pPVar36->point).y = uVar38;\n    *(undefined4 *)((int)&(pPVar36->point).y + 4) = uVar37;\n  }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n    do {\n      pPVar29 = pPVar17;\n      pdVar28 = pdVar16 + 2;\n      sVar35 = *(size_t *)((int)pdVar16 + 4);\n      sVar49 = *(size_t *)(pdVar16 + 1);\n      sVar40 = *(size_t *)((int)pdVar16 + 0xc);\n      *(size_t *)&(pPVar29->point).x = *(size_t *)pdVar16;\n      *(size_t *)((int)&(pPVar29->point).x + 4) = sVar35;\n      *(size_t *)&(pPVar29->point).y = sVar49;\n      *(size_t *)((int)&(pPVar29->point).y + 4) = sVar40;\n      pdVar16 = pdVar28;\n      pPVar17 = (PrimitiveInfo *)&pPVar29->coordinates;\n    } while (pdVar28 != pdVar43);\n    iVar13 = iVar13 + 1;\n    PVar5 = *(PrimitiveType *)((int)pdVar9 + 0x24);\n    pPVar29->coordinates = *(size_t *)(pdVar9 + 4);\n    pPVar29->primitive = PVar5;\n    uVar39 = *(undefined4 *)((int)&(pPVar18->point).x + 4);\n    uVar38 = *(undefined4 *)&(pPVar18->point).y;\n    uVar37 = *(undefined4 *)((int)&(pPVar18->point).y + 4);\n    pPVar17 = pPVar18 + iVar13;\n    *(undefined4 *)&(pPVar36->point).x = *(undefined4 *)&(pPVar18->point).x;\n    *(undefined4 *)((int)&(pPVar36->point).x + 4) = uVar39;\n    *(undefined4 *)&(pPVar36->point).y = uVar38;\n    *(undefined4 *)((int)&(pPVar36->point).y + 4) = uVar37;\n  }" { (do_statement "do {\n      pPVar29 = pPVar17;\n      pdVar28 = pdVar16 + 2;\n      sVar35 = *(size_t *)((int)pdVar16 + 4);\n      sVar49 = *(size_t *)(pdVar16 + 1);\n      sVar40 = *(size_t *)((int)pdVar16 + 0xc);\n      *(size_t *)&(pPVar29->point).x = *(size_t *)pdVar16;\n      *(size_t *)((int)&(pPVar29->point).x + 4) = sVar35;\n      *(size_t *)&(pPVar29->point).y = sVar49;\n      *(size_t *)((int)&(pPVar29->point).y + 4) = sVar40;\n      pdVar16 = pdVar28;\n      pPVar17 = (PrimitiveInfo *)&pPVar29->coordinates;\n    } while (pdVar28 != pdVar43);" do (compound_statement "{\n      pPVar29 = pPVar17;\n      pdVar28 = pdVar16 + 2;\n      sVar35 = *(size_t *)((int)pdVar16 + 4);\n      sVar49 = *(size_t *)(pdVar16 + 1);\n      sVar40 = *(size_t *)((int)pdVar16 + 0xc);\n      *(size_t *)&(pPVar29->point).x = *(size_t *)pdVar16;\n      *(size_t *)((int)&(pPVar29->point).x + 4) = sVar35;\n      *(size_t *)&(pPVar29->point).y = sVar49;\n      *(size_t *)((int)&(pPVar29->point).y + 4) = sVar40;\n      pdVar16 = pdVar28;\n      pPVar17 = (PrimitiveInfo *)&pPVar29->coordinates;\n    }" { (expression_statement "pPVar29 = pPVar17;" (assignment_expression "pPVar29 = pPVar17" identifier = identifier) ;) (expression_statement "pdVar28 = pdVar16 + 2;" (assignment_expression "pdVar28 = pdVar16 + 2" identifier = (binary_expression "pdVar16 + 2" identifier + number_literal)) ;) (expression_statement "sVar35 = *(size_t *)((int)pdVar16 + 4);" (assignment_expression "sVar35 = *(size_t *)((int)pdVar16 + 4)" identifier = (pointer_expression "*(size_t *)((int)pdVar16 + 4)" * (cast_expression "(size_t *)((int)pdVar16 + 4)" ( (type_descriptor "size_t *" primitive_type (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) ))))) ;) (expression_statement "sVar49 = *(size_t *)(pdVar16 + 1);" (assignment_expression "sVar49 = *(size_t *)(pdVar16 + 1)" identifier = (pointer_expression "*(size_t *)(pdVar16 + 1)" * (cast_expression "(size_t *)(pdVar16 + 1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 1)" ( (binary_expression "pdVar16 + 1" identifier + number_literal) ))))) ;) (expression_statement "sVar40 = *(size_t *)((int)pdVar16 + 0xc);" (assignment_expression "sVar40 = *(size_t *)((int)pdVar16 + 0xc)" identifier = (pointer_expression "*(size_t *)((int)pdVar16 + 0xc)" * (cast_expression "(size_t *)((int)pdVar16 + 0xc)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + 0xc)" ( (binary_expression "(int)pdVar16 + 0xc" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(size_t *)&(pPVar29->point).x = *(size_t *)pdVar16;" (assignment_expression "*(size_t *)&(pPVar29->point).x = *(size_t *)pdVar16" (pointer_expression "*(size_t *)&(pPVar29->point).x" * (cast_expression "(size_t *)&(pPVar29->point).x" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pPVar29->point).x" & (field_expression "(pPVar29->point).x" (parenthesized_expression "(pPVar29->point)" ( (field_expression "pPVar29->point" identifier -> field_identifier) )) . field_identifier)))) = (pointer_expression "*(size_t *)pdVar16" * (cast_expression "(size_t *)pdVar16" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(size_t *)((int)&(pPVar29->point).x + 4) = sVar35;" (assignment_expression "*(size_t *)((int)&(pPVar29->point).x + 4) = sVar35" (pointer_expression "*(size_t *)((int)&(pPVar29->point).x + 4)" * (cast_expression "(size_t *)((int)&(pPVar29->point).x + 4)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pPVar29->point).x + 4)" ( (binary_expression "(int)&(pPVar29->point).x + 4" (cast_expression "(int)&(pPVar29->point).x" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pPVar29->point).x" & (field_expression "(pPVar29->point).x" (parenthesized_expression "(pPVar29->point)" ( (field_expression "pPVar29->point" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(size_t *)&(pPVar29->point).y = sVar49;" (assignment_expression "*(size_t *)&(pPVar29->point).y = sVar49" (pointer_expression "*(size_t *)&(pPVar29->point).y" * (cast_expression "(size_t *)&(pPVar29->point).y" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pPVar29->point).y" & (field_expression "(pPVar29->point).y" (parenthesized_expression "(pPVar29->point)" ( (field_expression "pPVar29->point" identifier -> field_identifier) )) . field_identifier)))) = identifier) ;) (expression_statement "*(size_t *)((int)&(pPVar29->point).y + 4) = sVar40;" (assignment_expression "*(size_t *)((int)&(pPVar29->point).y + 4) = sVar40" (pointer_expression "*(size_t *)((int)&(pPVar29->point).y + 4)" * (cast_expression "(size_t *)((int)&(pPVar29->point).y + 4)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pPVar29->point).y + 4)" ( (binary_expression "(int)&(pPVar29->point).y + 4" (cast_expression "(int)&(pPVar29->point).y" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pPVar29->point).y" & (field_expression "(pPVar29->point).y" (parenthesized_expression "(pPVar29->point)" ( (field_expression "pPVar29->point" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "pdVar16 = pdVar28;" (assignment_expression "pdVar16 = pdVar28" identifier = identifier) ;) (expression_statement "pPVar17 = (PrimitiveInfo *)&pPVar29->coordinates;" (assignment_expression "pPVar17 = (PrimitiveInfo *)&pPVar29->coordinates" identifier = (cast_expression "(PrimitiveInfo *)&pPVar29->coordinates" ( (type_descriptor "PrimitiveInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pPVar29->coordinates" & (field_expression "pPVar29->coordinates" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(pdVar28 != pdVar43)" ( (binary_expression "pdVar28 != pdVar43" identifier != identifier) )) ;) (expression_statement "iVar13 = iVar13 + 1;" (assignment_expression "iVar13 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "PVar5 = *(PrimitiveType *)((int)pdVar9 + 0x24);" (assignment_expression "PVar5 = *(PrimitiveType *)((int)pdVar9 + 0x24)" identifier = (pointer_expression "*(PrimitiveType *)((int)pdVar9 + 0x24)" * (cast_expression "(PrimitiveType *)((int)pdVar9 + 0x24)" ( (type_descriptor "PrimitiveType *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar9 + 0x24)" ( (binary_expression "(int)pdVar9 + 0x24" (cast_expression "(int)pdVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pPVar29->coordinates = *(size_t *)(pdVar9 + 4);" (assignment_expression "pPVar29->coordinates = *(size_t *)(pdVar9 + 4)" (field_expression "pPVar29->coordinates" identifier -> field_identifier) = (pointer_expression "*(size_t *)(pdVar9 + 4)" * (cast_expression "(size_t *)(pdVar9 + 4)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar9 + 4)" ( (binary_expression "pdVar9 + 4" identifier + number_literal) ))))) ;) (expression_statement "pPVar29->primitive = PVar5;" (assignment_expression "pPVar29->primitive = PVar5" (field_expression "pPVar29->primitive" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar39 = *(undefined4 *)((int)&(pPVar18->point).x + 4);" (assignment_expression "uVar39 = *(undefined4 *)((int)&(pPVar18->point).x + 4)" identifier = (pointer_expression "*(undefined4 *)((int)&(pPVar18->point).x + 4)" * (cast_expression "(undefined4 *)((int)&(pPVar18->point).x + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pPVar18->point).x + 4)" ( (binary_expression "(int)&(pPVar18->point).x + 4" (cast_expression "(int)&(pPVar18->point).x" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pPVar18->point).x" & (field_expression "(pPVar18->point).x" (parenthesized_expression "(pPVar18->point)" ( (field_expression "pPVar18->point" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar38 = *(undefined4 *)&(pPVar18->point).y;" (assignment_expression "uVar38 = *(undefined4 *)&(pPVar18->point).y" identifier = (pointer_expression "*(undefined4 *)&(pPVar18->point).y" * (cast_expression "(undefined4 *)&(pPVar18->point).y" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pPVar18->point).y" & (field_expression "(pPVar18->point).y" (parenthesized_expression "(pPVar18->point)" ( (field_expression "pPVar18->point" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "uVar37 = *(undefined4 *)((int)&(pPVar18->point).y + 4);" (assignment_expression "uVar37 = *(undefined4 *)((int)&(pPVar18->point).y + 4)" identifier = (pointer_expression "*(undefined4 *)((int)&(pPVar18->point).y + 4)" * (cast_expression "(undefined4 *)((int)&(pPVar18->point).y + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pPVar18->point).y + 4)" ( (binary_expression "(int)&(pPVar18->point).y + 4" (cast_expression "(int)&(pPVar18->point).y" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pPVar18->point).y" & (field_expression "(pPVar18->point).y" (parenthesized_expression "(pPVar18->point)" ( (field_expression "pPVar18->point" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "pPVar17 = pPVar18 + iVar13;" (assignment_expression "pPVar17 = pPVar18 + iVar13" identifier = (binary_expression "pPVar18 + iVar13" identifier + identifier)) ;) (expression_statement "*(undefined4 *)&(pPVar36->point).x = *(undefined4 *)&(pPVar18->point).x;" (assignment_expression "*(undefined4 *)&(pPVar36->point).x = *(undefined4 *)&(pPVar18->point).x" (pointer_expression "*(undefined4 *)&(pPVar36->point).x" * (cast_expression "(undefined4 *)&(pPVar36->point).x" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pPVar36->point).x" & (field_expression "(pPVar36->point).x" (parenthesized_expression "(pPVar36->point)" ( (field_expression "pPVar36->point" identifier -> field_identifier) )) . field_identifier)))) = (pointer_expression "*(undefined4 *)&(pPVar18->point).x" * (cast_expression "(undefined4 *)&(pPVar18->point).x" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pPVar18->point).x" & (field_expression "(pPVar18->point).x" (parenthesized_expression "(pPVar18->point)" ( (field_expression "pPVar18->point" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "*(undefined4 *)((int)&(pPVar36->point).x + 4) = uVar39;" (assignment_expression "*(undefined4 *)((int)&(pPVar36->point).x + 4) = uVar39" (pointer_expression "*(undefined4 *)((int)&(pPVar36->point).x + 4)" * (cast_expression "(undefined4 *)((int)&(pPVar36->point).x + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pPVar36->point).x + 4)" ( (binary_expression "(int)&(pPVar36->point).x + 4" (cast_expression "(int)&(pPVar36->point).x" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pPVar36->point).x" & (field_expression "(pPVar36->point).x" (parenthesized_expression "(pPVar36->point)" ( (field_expression "pPVar36->point" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)&(pPVar36->point).y = uVar38;" (assignment_expression "*(undefined4 *)&(pPVar36->point).y = uVar38" (pointer_expression "*(undefined4 *)&(pPVar36->point).y" * (cast_expression "(undefined4 *)&(pPVar36->point).y" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pPVar36->point).y" & (field_expression "(pPVar36->point).y" (parenthesized_expression "(pPVar36->point)" ( (field_expression "pPVar36->point" identifier -> field_identifier) )) . field_identifier)))) = identifier) ;) (expression_statement "*(undefined4 *)((int)&(pPVar36->point).y + 4) = uVar37;" (assignment_expression "*(undefined4 *)((int)&(pPVar36->point).y + 4) = uVar37" (pointer_expression "*(undefined4 *)((int)&(pPVar36->point).y + 4)" * (cast_expression "(undefined4 *)((int)&(pPVar36->point).y + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pPVar36->point).y + 4)" ( (binary_expression "(int)&(pPVar36->point).y + 4" (cast_expression "(int)&(pPVar36->point).y" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pPVar36->point).y" & (field_expression "(pPVar36->point).y" (parenthesized_expression "(pPVar36->point)" ( (field_expression "pPVar36->point" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) })) (expression_statement "iStack_188 = iVar44 - iStack_188;" (assignment_expression "iStack_188 = iVar44 - iStack_188" identifier = (binary_expression "iVar44 - iStack_188" identifier - identifier)) ;) (if_statement "if (iVar13 < iStack_188) {\n    pdVar16 = pdVar9;\n    pPVar17 = pPVar18 + iVar13;\n    pdVar28 = pdVar12 + ((iStack_188 + 0xfffffff) - iVar13) * 2;\n    pPVar29 = pPVar18 + iVar13;\n    do {\n      do {\n        pPVar34 = pPVar17;\n        pdVar15 = pdVar16 + 2;\n        sVar35 = *(size_t *)((int)pdVar16 + 4);\n        sVar49 = *(size_t *)(pdVar16 + 1);\n        sVar40 = *(size_t *)((int)pdVar16 + 0xc);\n        *(size_t *)&(pPVar34->point).x = *(size_t *)pdVar16;\n        *(size_t *)((int)&(pPVar34->point).x + 4) = sVar35;\n        *(size_t *)&(pPVar34->point).y = sVar49;\n        *(size_t *)((int)&(pPVar34->point).y + 4) = sVar40;\n        pdVar16 = pdVar15;\n        pPVar17 = (PrimitiveInfo *)&pPVar34->coordinates;\n      } while (pdVar15 != pdVar43);\n      pdVar15 = pdVar28 + -2;\n      PVar5 = *(PrimitiveType *)((int)pdVar9 + 0x24);\n      pPVar34->coordinates = *(size_t *)pdVar43;\n      pPVar34->primitive = PVar5;\n      uVar39 = *(undefined4 *)((int)pdVar28 + 4);\n      uVar38 = *(undefined4 *)(pdVar28 + 1);\n      uVar37 = *(undefined4 *)((int)pdVar28 + 0xc);\n      *(undefined4 *)&(pPVar29->point).x = *(undefined4 *)pdVar28;\n      *(undefined4 *)((int)&(pPVar29->point).x + 4) = uVar39;\n      *(undefined4 *)&(pPVar29->point).y = uVar38;\n      *(undefined4 *)((int)&(pPVar29->point).y + 4) = uVar37;\n      pdVar16 = pdVar9;\n      pPVar17 = pPVar29 + 1;\n      pdVar28 = pdVar15;\n      pPVar29 = pPVar29 + 1;\n    } while (pdVar12 + -2 != pdVar15);\n    pPVar17 = pPVar18 + iStack_188;\n    iVar13 = iStack_188;\n  }" if (parenthesized_expression "(iVar13 < iStack_188)" ( (binary_expression "iVar13 < iStack_188" identifier < identifier) )) (compound_statement "{\n    pdVar16 = pdVar9;\n    pPVar17 = pPVar18 + iVar13;\n    pdVar28 = pdVar12 + ((iStack_188 + 0xfffffff) - iVar13) * 2;\n    pPVar29 = pPVar18 + iVar13;\n    do {\n      do {\n        pPVar34 = pPVar17;\n        pdVar15 = pdVar16 + 2;\n        sVar35 = *(size_t *)((int)pdVar16 + 4);\n        sVar49 = *(size_t *)(pdVar16 + 1);\n        sVar40 = *(size_t *)((int)pdVar16 + 0xc);\n        *(size_t *)&(pPVar34->point).x = *(size_t *)pdVar16;\n        *(size_t *)((int)&(pPVar34->point).x + 4) = sVar35;\n        *(size_t *)&(pPVar34->point).y = sVar49;\n        *(size_t *)((int)&(pPVar34->point).y + 4) = sVar40;\n        pdVar16 = pdVar15;\n        pPVar17 = (PrimitiveInfo *)&pPVar34->coordinates;\n      } while (pdVar15 != pdVar43);\n      pdVar15 = pdVar28 + -2;\n      PVar5 = *(PrimitiveType *)((int)pdVar9 + 0x24);\n      pPVar34->coordinates = *(size_t *)pdVar43;\n      pPVar34->primitive = PVar5;\n      uVar39 = *(undefined4 *)((int)pdVar28 + 4);\n      uVar38 = *(undefined4 *)(pdVar28 + 1);\n      uVar37 = *(undefined4 *)((int)pdVar28 + 0xc);\n      *(undefined4 *)&(pPVar29->point).x = *(undefined4 *)pdVar28;\n      *(undefined4 *)((int)&(pPVar29->point).x + 4) = uVar39;\n      *(undefined4 *)&(pPVar29->point).y = uVar38;\n      *(undefined4 *)((int)&(pPVar29->point).y + 4) = uVar37;\n      pdVar16 = pdVar9;\n      pPVar17 = pPVar29 + 1;\n      pdVar28 = pdVar15;\n      pPVar29 = pPVar29 + 1;\n    } while (pdVar12 + -2 != pdVar15);\n    pPVar17 = pPVar18 + iStack_188;\n    iVar13 = iStack_188;\n  }" { (expression_statement "pdVar16 = pdVar9;" (assignment_expression "pdVar16 = pdVar9" identifier = identifier) ;) (expression_statement "pPVar17 = pPVar18 + iVar13;" (assignment_expression "pPVar17 = pPVar18 + iVar13" identifier = (binary_expression "pPVar18 + iVar13" identifier + identifier)) ;) (expression_statement "pdVar28 = pdVar12 + ((iStack_188 + 0xfffffff) - iVar13) * 2;" (assignment_expression "pdVar28 = pdVar12 + ((iStack_188 + 0xfffffff) - iVar13) * 2" identifier = (binary_expression "pdVar12 + ((iStack_188 + 0xfffffff) - iVar13) * 2" identifier + (binary_expression "((iStack_188 + 0xfffffff) - iVar13) * 2" (parenthesized_expression "((iStack_188 + 0xfffffff) - iVar13)" ( (binary_expression "(iStack_188 + 0xfffffff) - iVar13" (parenthesized_expression "(iStack_188 + 0xfffffff)" ( (binary_expression "iStack_188 + 0xfffffff" identifier + number_literal) )) - identifier) )) * number_literal))) ;) (expression_statement "pPVar29 = pPVar18 + iVar13;" (assignment_expression "pPVar29 = pPVar18 + iVar13" identifier = (binary_expression "pPVar18 + iVar13" identifier + identifier)) ;) (do_statement "do {\n      do {\n        pPVar34 = pPVar17;\n        pdVar15 = pdVar16 + 2;\n        sVar35 = *(size_t *)((int)pdVar16 + 4);\n        sVar49 = *(size_t *)(pdVar16 + 1);\n        sVar40 = *(size_t *)((int)pdVar16 + 0xc);\n        *(size_t *)&(pPVar34->point).x = *(size_t *)pdVar16;\n        *(size_t *)((int)&(pPVar34->point).x + 4) = sVar35;\n        *(size_t *)&(pPVar34->point).y = sVar49;\n        *(size_t *)((int)&(pPVar34->point).y + 4) = sVar40;\n        pdVar16 = pdVar15;\n        pPVar17 = (PrimitiveInfo *)&pPVar34->coordinates;\n      } while (pdVar15 != pdVar43);\n      pdVar15 = pdVar28 + -2;\n      PVar5 = *(PrimitiveType *)((int)pdVar9 + 0x24);\n      pPVar34->coordinates = *(size_t *)pdVar43;\n      pPVar34->primitive = PVar5;\n      uVar39 = *(undefined4 *)((int)pdVar28 + 4);\n      uVar38 = *(undefined4 *)(pdVar28 + 1);\n      uVar37 = *(undefined4 *)((int)pdVar28 + 0xc);\n      *(undefined4 *)&(pPVar29->point).x = *(undefined4 *)pdVar28;\n      *(undefined4 *)((int)&(pPVar29->point).x + 4) = uVar39;\n      *(undefined4 *)&(pPVar29->point).y = uVar38;\n      *(undefined4 *)((int)&(pPVar29->point).y + 4) = uVar37;\n      pdVar16 = pdVar9;\n      pPVar17 = pPVar29 + 1;\n      pdVar28 = pdVar15;\n      pPVar29 = pPVar29 + 1;\n    } while (pdVar12 + -2 != pdVar15);" do (compound_statement "{\n      do {\n        pPVar34 = pPVar17;\n        pdVar15 = pdVar16 + 2;\n        sVar35 = *(size_t *)((int)pdVar16 + 4);\n        sVar49 = *(size_t *)(pdVar16 + 1);\n        sVar40 = *(size_t *)((int)pdVar16 + 0xc);\n        *(size_t *)&(pPVar34->point).x = *(size_t *)pdVar16;\n        *(size_t *)((int)&(pPVar34->point).x + 4) = sVar35;\n        *(size_t *)&(pPVar34->point).y = sVar49;\n        *(size_t *)((int)&(pPVar34->point).y + 4) = sVar40;\n        pdVar16 = pdVar15;\n        pPVar17 = (PrimitiveInfo *)&pPVar34->coordinates;\n      } while (pdVar15 != pdVar43);\n      pdVar15 = pdVar28 + -2;\n      PVar5 = *(PrimitiveType *)((int)pdVar9 + 0x24);\n      pPVar34->coordinates = *(size_t *)pdVar43;\n      pPVar34->primitive = PVar5;\n      uVar39 = *(undefined4 *)((int)pdVar28 + 4);\n      uVar38 = *(undefined4 *)(pdVar28 + 1);\n      uVar37 = *(undefined4 *)((int)pdVar28 + 0xc);\n      *(undefined4 *)&(pPVar29->point).x = *(undefined4 *)pdVar28;\n      *(undefined4 *)((int)&(pPVar29->point).x + 4) = uVar39;\n      *(undefined4 *)&(pPVar29->point).y = uVar38;\n      *(undefined4 *)((int)&(pPVar29->point).y + 4) = uVar37;\n      pdVar16 = pdVar9;\n      pPVar17 = pPVar29 + 1;\n      pdVar28 = pdVar15;\n      pPVar29 = pPVar29 + 1;\n    }" { (do_statement "do {\n        pPVar34 = pPVar17;\n        pdVar15 = pdVar16 + 2;\n        sVar35 = *(size_t *)((int)pdVar16 + 4);\n        sVar49 = *(size_t *)(pdVar16 + 1);\n        sVar40 = *(size_t *)((int)pdVar16 + 0xc);\n        *(size_t *)&(pPVar34->point).x = *(size_t *)pdVar16;\n        *(size_t *)((int)&(pPVar34->point).x + 4) = sVar35;\n        *(size_t *)&(pPVar34->point).y = sVar49;\n        *(size_t *)((int)&(pPVar34->point).y + 4) = sVar40;\n        pdVar16 = pdVar15;\n        pPVar17 = (PrimitiveInfo *)&pPVar34->coordinates;\n      } while (pdVar15 != pdVar43);" do (compound_statement "{\n        pPVar34 = pPVar17;\n        pdVar15 = pdVar16 + 2;\n        sVar35 = *(size_t *)((int)pdVar16 + 4);\n        sVar49 = *(size_t *)(pdVar16 + 1);\n        sVar40 = *(size_t *)((int)pdVar16 + 0xc);\n        *(size_t *)&(pPVar34->point).x = *(size_t *)pdVar16;\n        *(size_t *)((int)&(pPVar34->point).x + 4) = sVar35;\n        *(size_t *)&(pPVar34->point).y = sVar49;\n        *(size_t *)((int)&(pPVar34->point).y + 4) = sVar40;\n        pdVar16 = pdVar15;\n        pPVar17 = (PrimitiveInfo *)&pPVar34->coordinates;\n      }" { (expression_statement "pPVar34 = pPVar17;" (assignment_expression "pPVar34 = pPVar17" identifier = identifier) ;) (expression_statement "pdVar15 = pdVar16 + 2;" (assignment_expression "pdVar15 = pdVar16 + 2" identifier = (binary_expression "pdVar16 + 2" identifier + number_literal)) ;) (expression_statement "sVar35 = *(size_t *)((int)pdVar16 + 4);" (assignment_expression "sVar35 = *(size_t *)((int)pdVar16 + 4)" identifier = (pointer_expression "*(size_t *)((int)pdVar16 + 4)" * (cast_expression "(size_t *)((int)pdVar16 + 4)" ( (type_descriptor "size_t *" primitive_type (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) ))))) ;) (expression_statement "sVar49 = *(size_t *)(pdVar16 + 1);" (assignment_expression "sVar49 = *(size_t *)(pdVar16 + 1)" identifier = (pointer_expression "*(size_t *)(pdVar16 + 1)" * (cast_expression "(size_t *)(pdVar16 + 1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 1)" ( (binary_expression "pdVar16 + 1" identifier + number_literal) ))))) ;) (expression_statement "sVar40 = *(size_t *)((int)pdVar16 + 0xc);" (assignment_expression "sVar40 = *(size_t *)((int)pdVar16 + 0xc)" identifier = (pointer_expression "*(size_t *)((int)pdVar16 + 0xc)" * (cast_expression "(size_t *)((int)pdVar16 + 0xc)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + 0xc)" ( (binary_expression "(int)pdVar16 + 0xc" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(size_t *)&(pPVar34->point).x = *(size_t *)pdVar16;" (assignment_expression "*(size_t *)&(pPVar34->point).x = *(size_t *)pdVar16" (pointer_expression "*(size_t *)&(pPVar34->point).x" * (cast_expression "(size_t *)&(pPVar34->point).x" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pPVar34->point).x" & (field_expression "(pPVar34->point).x" (parenthesized_expression "(pPVar34->point)" ( (field_expression "pPVar34->point" identifier -> field_identifier) )) . field_identifier)))) = (pointer_expression "*(size_t *)pdVar16" * (cast_expression "(size_t *)pdVar16" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(size_t *)((int)&(pPVar34->point).x + 4) = sVar35;" (assignment_expression "*(size_t *)((int)&(pPVar34->point).x + 4) = sVar35" (pointer_expression "*(size_t *)((int)&(pPVar34->point).x + 4)" * (cast_expression "(size_t *)((int)&(pPVar34->point).x + 4)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pPVar34->point).x + 4)" ( (binary_expression "(int)&(pPVar34->point).x + 4" (cast_expression "(int)&(pPVar34->point).x" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pPVar34->point).x" & (field_expression "(pPVar34->point).x" (parenthesized_expression "(pPVar34->point)" ( (field_expression "pPVar34->point" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(size_t *)&(pPVar34->point).y = sVar49;" (assignment_expression "*(size_t *)&(pPVar34->point).y = sVar49" (pointer_expression "*(size_t *)&(pPVar34->point).y" * (cast_expression "(size_t *)&(pPVar34->point).y" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pPVar34->point).y" & (field_expression "(pPVar34->point).y" (parenthesized_expression "(pPVar34->point)" ( (field_expression "pPVar34->point" identifier -> field_identifier) )) . field_identifier)))) = identifier) ;) (expression_statement "*(size_t *)((int)&(pPVar34->point).y + 4) = sVar40;" (assignment_expression "*(size_t *)((int)&(pPVar34->point).y + 4) = sVar40" (pointer_expression "*(size_t *)((int)&(pPVar34->point).y + 4)" * (cast_expression "(size_t *)((int)&(pPVar34->point).y + 4)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pPVar34->point).y + 4)" ( (binary_expression "(int)&(pPVar34->point).y + 4" (cast_expression "(int)&(pPVar34->point).y" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pPVar34->point).y" & (field_expression "(pPVar34->point).y" (parenthesized_expression "(pPVar34->point)" ( (field_expression "pPVar34->point" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "pdVar16 = pdVar15;" (assignment_expression "pdVar16 = pdVar15" identifier = identifier) ;) (expression_statement "pPVar17 = (PrimitiveInfo *)&pPVar34->coordinates;" (assignment_expression "pPVar17 = (PrimitiveInfo *)&pPVar34->coordinates" identifier = (cast_expression "(PrimitiveInfo *)&pPVar34->coordinates" ( (type_descriptor "PrimitiveInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pPVar34->coordinates" & (field_expression "pPVar34->coordinates" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(pdVar15 != pdVar43)" ( (binary_expression "pdVar15 != pdVar43" identifier != identifier) )) ;) (expression_statement "pdVar15 = pdVar28 + -2;" (assignment_expression "pdVar15 = pdVar28 + -2" identifier = (binary_expression "pdVar28 + -2" identifier + number_literal)) ;) (expression_statement "PVar5 = *(PrimitiveType *)((int)pdVar9 + 0x24);" (assignment_expression "PVar5 = *(PrimitiveType *)((int)pdVar9 + 0x24)" identifier = (pointer_expression "*(PrimitiveType *)((int)pdVar9 + 0x24)" * (cast_expression "(PrimitiveType *)((int)pdVar9 + 0x24)" ( (type_descriptor "PrimitiveType *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar9 + 0x24)" ( (binary_expression "(int)pdVar9 + 0x24" (cast_expression "(int)pdVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pPVar34->coordinates = *(size_t *)pdVar43;" (assignment_expression "pPVar34->coordinates = *(size_t *)pdVar43" (field_expression "pPVar34->coordinates" identifier -> field_identifier) = (pointer_expression "*(size_t *)pdVar43" * (cast_expression "(size_t *)pdVar43" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pPVar34->primitive = PVar5;" (assignment_expression "pPVar34->primitive = PVar5" (field_expression "pPVar34->primitive" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar39 = *(undefined4 *)((int)pdVar28 + 4);" (assignment_expression "uVar39 = *(undefined4 *)((int)pdVar28 + 4)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar28 + 4)" * (cast_expression "(undefined4 *)((int)pdVar28 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar28 + 4)" ( (binary_expression "(int)pdVar28 + 4" (cast_expression "(int)pdVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar38 = *(undefined4 *)(pdVar28 + 1);" (assignment_expression "uVar38 = *(undefined4 *)(pdVar28 + 1)" identifier = (pointer_expression "*(undefined4 *)(pdVar28 + 1)" * (cast_expression "(undefined4 *)(pdVar28 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar28 + 1)" ( (binary_expression "pdVar28 + 1" identifier + number_literal) ))))) ;) (expression_statement "uVar37 = *(undefined4 *)((int)pdVar28 + 0xc);" (assignment_expression "uVar37 = *(undefined4 *)((int)pdVar28 + 0xc)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar28 + 0xc)" * (cast_expression "(undefined4 *)((int)pdVar28 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar28 + 0xc)" ( (binary_expression "(int)pdVar28 + 0xc" (cast_expression "(int)pdVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)&(pPVar29->point).x = *(undefined4 *)pdVar28;" (assignment_expression "*(undefined4 *)&(pPVar29->point).x = *(undefined4 *)pdVar28" (pointer_expression "*(undefined4 *)&(pPVar29->point).x" * (cast_expression "(undefined4 *)&(pPVar29->point).x" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pPVar29->point).x" & (field_expression "(pPVar29->point).x" (parenthesized_expression "(pPVar29->point)" ( (field_expression "pPVar29->point" identifier -> field_identifier) )) . field_identifier)))) = (pointer_expression "*(undefined4 *)pdVar28" * (cast_expression "(undefined4 *)pdVar28" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)((int)&(pPVar29->point).x + 4) = uVar39;" (assignment_expression "*(undefined4 *)((int)&(pPVar29->point).x + 4) = uVar39" (pointer_expression "*(undefined4 *)((int)&(pPVar29->point).x + 4)" * (cast_expression "(undefined4 *)((int)&(pPVar29->point).x + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pPVar29->point).x + 4)" ( (binary_expression "(int)&(pPVar29->point).x + 4" (cast_expression "(int)&(pPVar29->point).x" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pPVar29->point).x" & (field_expression "(pPVar29->point).x" (parenthesized_expression "(pPVar29->point)" ( (field_expression "pPVar29->point" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)&(pPVar29->point).y = uVar38;" (assignment_expression "*(undefined4 *)&(pPVar29->point).y = uVar38" (pointer_expression "*(undefined4 *)&(pPVar29->point).y" * (cast_expression "(undefined4 *)&(pPVar29->point).y" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pPVar29->point).y" & (field_expression "(pPVar29->point).y" (parenthesized_expression "(pPVar29->point)" ( (field_expression "pPVar29->point" identifier -> field_identifier) )) . field_identifier)))) = identifier) ;) (expression_statement "*(undefined4 *)((int)&(pPVar29->point).y + 4) = uVar37;" (assignment_expression "*(undefined4 *)((int)&(pPVar29->point).y + 4) = uVar37" (pointer_expression "*(undefined4 *)((int)&(pPVar29->point).y + 4)" * (cast_expression "(undefined4 *)((int)&(pPVar29->point).y + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pPVar29->point).y + 4)" ( (binary_expression "(int)&(pPVar29->point).y + 4" (cast_expression "(int)&(pPVar29->point).y" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pPVar29->point).y" & (field_expression "(pPVar29->point).y" (parenthesized_expression "(pPVar29->point)" ( (field_expression "pPVar29->point" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "pdVar16 = pdVar9;" (assignment_expression "pdVar16 = pdVar9" identifier = identifier) ;) (expression_statement "pPVar17 = pPVar29 + 1;" (assignment_expression "pPVar17 = pPVar29 + 1" identifier = (binary_expression "pPVar29 + 1" identifier + number_literal)) ;) (expression_statement "pdVar28 = pdVar15;" (assignment_expression "pdVar28 = pdVar15" identifier = identifier) ;) (expression_statement "pPVar29 = pPVar29 + 1;" (assignment_expression "pPVar29 = pPVar29 + 1" identifier = (binary_expression "pPVar29 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pdVar12 + -2 != pdVar15)" ( (binary_expression "pdVar12 + -2 != pdVar15" (binary_expression "pdVar12 + -2" identifier + number_literal) != identifier) )) ;) (expression_statement "pPVar17 = pPVar18 + iStack_188;" (assignment_expression "pPVar17 = pPVar18 + iStack_188" identifier = (binary_expression "pPVar18 + iStack_188" identifier + identifier)) ;) (expression_statement "iVar13 = iStack_188;" (assignment_expression "iVar13 = iStack_188" identifier = identifier) ;) })) (expression_statement "pPVar33 = pPVar18 + iVar13 + 1;" (assignment_expression "pPVar33 = pPVar18 + iVar13 + 1" identifier = (binary_expression "pPVar18 + iVar13 + 1" (binary_expression "pPVar18 + iVar13" identifier + identifier) + number_literal)) ;) (expression_statement "pdVar16 = pdVar9;" (assignment_expression "pdVar16 = pdVar9" identifier = identifier) ;) (expression_statement "pPVar29 = pPVar17;" (assignment_expression "pPVar29 = pPVar17" identifier = identifier) ;) (expression_statement "pPVar34 = pPVar33;" (assignment_expression "pPVar34 = pPVar33" identifier = identifier) ;) (if_statement "if (bVar2) {\n    do {\n      pPVar34 = pPVar29;\n      pdVar28 = pdVar16 + 2;\n      sVar35 = *(size_t *)((int)pdVar16 + 4);\n      sVar49 = *(size_t *)(pdVar16 + 1);\n      sVar40 = *(size_t *)((int)pdVar16 + 0xc);\n      *(size_t *)&(pPVar34->point).x = *(size_t *)pdVar16;\n      *(size_t *)((int)&(pPVar34->point).x + 4) = sVar35;\n      *(size_t *)&(pPVar34->point).y = sVar49;\n      *(size_t *)((int)&(pPVar34->point).y + 4) = sVar40;\n      pdVar16 = pdVar28;\n      pPVar29 = (PrimitiveInfo *)&pPVar34->coordinates;\n    } while (pdVar28 != pdVar43);\n    PVar5 = *(PrimitiveType *)((int)pdVar9 + 0x24);\n    pPVar34->coordinates = *(size_t *)(pdVar9 + 4);\n    pPVar34->primitive = PVar5;\n    uVar38 = *(undefined4 *)((int)&pPVar36[1].point.x + 4);\n    uVar37 = *(undefined4 *)&pPVar36[1].point.y;\n    uVar39 = *(undefined4 *)((int)&pPVar36[1].point.y + 4);\n    *(undefined4 *)&(pPVar17->point).x = *(undefined4 *)&pPVar36[1].point.x;\n    *(undefined4 *)((int)&(pPVar17->point).x + 4) = uVar38;\n    *(undefined4 *)&(pPVar17->point).y = uVar37;\n    *(undefined4 *)((int)&(pPVar17->point).y + 4) = uVar39;\n    pPVar34 = pPVar18 + iVar13 + 2;\n    pdVar16 = pdVar9;\n    pPVar17 = pPVar33;\n    pPVar29 = pPVar33;\n  }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n    do {\n      pPVar34 = pPVar29;\n      pdVar28 = pdVar16 + 2;\n      sVar35 = *(size_t *)((int)pdVar16 + 4);\n      sVar49 = *(size_t *)(pdVar16 + 1);\n      sVar40 = *(size_t *)((int)pdVar16 + 0xc);\n      *(size_t *)&(pPVar34->point).x = *(size_t *)pdVar16;\n      *(size_t *)((int)&(pPVar34->point).x + 4) = sVar35;\n      *(size_t *)&(pPVar34->point).y = sVar49;\n      *(size_t *)((int)&(pPVar34->point).y + 4) = sVar40;\n      pdVar16 = pdVar28;\n      pPVar29 = (PrimitiveInfo *)&pPVar34->coordinates;\n    } while (pdVar28 != pdVar43);\n    PVar5 = *(PrimitiveType *)((int)pdVar9 + 0x24);\n    pPVar34->coordinates = *(size_t *)(pdVar9 + 4);\n    pPVar34->primitive = PVar5;\n    uVar38 = *(undefined4 *)((int)&pPVar36[1].point.x + 4);\n    uVar37 = *(undefined4 *)&pPVar36[1].point.y;\n    uVar39 = *(undefined4 *)((int)&pPVar36[1].point.y + 4);\n    *(undefined4 *)&(pPVar17->point).x = *(undefined4 *)&pPVar36[1].point.x;\n    *(undefined4 *)((int)&(pPVar17->point).x + 4) = uVar38;\n    *(undefined4 *)&(pPVar17->point).y = uVar37;\n    *(undefined4 *)((int)&(pPVar17->point).y + 4) = uVar39;\n    pPVar34 = pPVar18 + iVar13 + 2;\n    pdVar16 = pdVar9;\n    pPVar17 = pPVar33;\n    pPVar29 = pPVar33;\n  }" { (do_statement "do {\n      pPVar34 = pPVar29;\n      pdVar28 = pdVar16 + 2;\n      sVar35 = *(size_t *)((int)pdVar16 + 4);\n      sVar49 = *(size_t *)(pdVar16 + 1);\n      sVar40 = *(size_t *)((int)pdVar16 + 0xc);\n      *(size_t *)&(pPVar34->point).x = *(size_t *)pdVar16;\n      *(size_t *)((int)&(pPVar34->point).x + 4) = sVar35;\n      *(size_t *)&(pPVar34->point).y = sVar49;\n      *(size_t *)((int)&(pPVar34->point).y + 4) = sVar40;\n      pdVar16 = pdVar28;\n      pPVar29 = (PrimitiveInfo *)&pPVar34->coordinates;\n    } while (pdVar28 != pdVar43);" do (compound_statement "{\n      pPVar34 = pPVar29;\n      pdVar28 = pdVar16 + 2;\n      sVar35 = *(size_t *)((int)pdVar16 + 4);\n      sVar49 = *(size_t *)(pdVar16 + 1);\n      sVar40 = *(size_t *)((int)pdVar16 + 0xc);\n      *(size_t *)&(pPVar34->point).x = *(size_t *)pdVar16;\n      *(size_t *)((int)&(pPVar34->point).x + 4) = sVar35;\n      *(size_t *)&(pPVar34->point).y = sVar49;\n      *(size_t *)((int)&(pPVar34->point).y + 4) = sVar40;\n      pdVar16 = pdVar28;\n      pPVar29 = (PrimitiveInfo *)&pPVar34->coordinates;\n    }" { (expression_statement "pPVar34 = pPVar29;" (assignment_expression "pPVar34 = pPVar29" identifier = identifier) ;) (expression_statement "pdVar28 = pdVar16 + 2;" (assignment_expression "pdVar28 = pdVar16 + 2" identifier = (binary_expression "pdVar16 + 2" identifier + number_literal)) ;) (expression_statement "sVar35 = *(size_t *)((int)pdVar16 + 4);" (assignment_expression "sVar35 = *(size_t *)((int)pdVar16 + 4)" identifier = (pointer_expression "*(size_t *)((int)pdVar16 + 4)" * (cast_expression "(size_t *)((int)pdVar16 + 4)" ( (type_descriptor "size_t *" primitive_type (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) ))))) ;) (expression_statement "sVar49 = *(size_t *)(pdVar16 + 1);" (assignment_expression "sVar49 = *(size_t *)(pdVar16 + 1)" identifier = (pointer_expression "*(size_t *)(pdVar16 + 1)" * (cast_expression "(size_t *)(pdVar16 + 1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 1)" ( (binary_expression "pdVar16 + 1" identifier + number_literal) ))))) ;) (expression_statement "sVar40 = *(size_t *)((int)pdVar16 + 0xc);" (assignment_expression "sVar40 = *(size_t *)((int)pdVar16 + 0xc)" identifier = (pointer_expression "*(size_t *)((int)pdVar16 + 0xc)" * (cast_expression "(size_t *)((int)pdVar16 + 0xc)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + 0xc)" ( (binary_expression "(int)pdVar16 + 0xc" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(size_t *)&(pPVar34->point).x = *(size_t *)pdVar16;" (assignment_expression "*(size_t *)&(pPVar34->point).x = *(size_t *)pdVar16" (pointer_expression "*(size_t *)&(pPVar34->point).x" * (cast_expression "(size_t *)&(pPVar34->point).x" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pPVar34->point).x" & (field_expression "(pPVar34->point).x" (parenthesized_expression "(pPVar34->point)" ( (field_expression "pPVar34->point" identifier -> field_identifier) )) . field_identifier)))) = (pointer_expression "*(size_t *)pdVar16" * (cast_expression "(size_t *)pdVar16" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(size_t *)((int)&(pPVar34->point).x + 4) = sVar35;" (assignment_expression "*(size_t *)((int)&(pPVar34->point).x + 4) = sVar35" (pointer_expression "*(size_t *)((int)&(pPVar34->point).x + 4)" * (cast_expression "(size_t *)((int)&(pPVar34->point).x + 4)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pPVar34->point).x + 4)" ( (binary_expression "(int)&(pPVar34->point).x + 4" (cast_expression "(int)&(pPVar34->point).x" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pPVar34->point).x" & (field_expression "(pPVar34->point).x" (parenthesized_expression "(pPVar34->point)" ( (field_expression "pPVar34->point" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(size_t *)&(pPVar34->point).y = sVar49;" (assignment_expression "*(size_t *)&(pPVar34->point).y = sVar49" (pointer_expression "*(size_t *)&(pPVar34->point).y" * (cast_expression "(size_t *)&(pPVar34->point).y" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pPVar34->point).y" & (field_expression "(pPVar34->point).y" (parenthesized_expression "(pPVar34->point)" ( (field_expression "pPVar34->point" identifier -> field_identifier) )) . field_identifier)))) = identifier) ;) (expression_statement "*(size_t *)((int)&(pPVar34->point).y + 4) = sVar40;" (assignment_expression "*(size_t *)((int)&(pPVar34->point).y + 4) = sVar40" (pointer_expression "*(size_t *)((int)&(pPVar34->point).y + 4)" * (cast_expression "(size_t *)((int)&(pPVar34->point).y + 4)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pPVar34->point).y + 4)" ( (binary_expression "(int)&(pPVar34->point).y + 4" (cast_expression "(int)&(pPVar34->point).y" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pPVar34->point).y" & (field_expression "(pPVar34->point).y" (parenthesized_expression "(pPVar34->point)" ( (field_expression "pPVar34->point" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "pdVar16 = pdVar28;" (assignment_expression "pdVar16 = pdVar28" identifier = identifier) ;) (expression_statement "pPVar29 = (PrimitiveInfo *)&pPVar34->coordinates;" (assignment_expression "pPVar29 = (PrimitiveInfo *)&pPVar34->coordinates" identifier = (cast_expression "(PrimitiveInfo *)&pPVar34->coordinates" ( (type_descriptor "PrimitiveInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pPVar34->coordinates" & (field_expression "pPVar34->coordinates" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(pdVar28 != pdVar43)" ( (binary_expression "pdVar28 != pdVar43" identifier != identifier) )) ;) (expression_statement "PVar5 = *(PrimitiveType *)((int)pdVar9 + 0x24);" (assignment_expression "PVar5 = *(PrimitiveType *)((int)pdVar9 + 0x24)" identifier = (pointer_expression "*(PrimitiveType *)((int)pdVar9 + 0x24)" * (cast_expression "(PrimitiveType *)((int)pdVar9 + 0x24)" ( (type_descriptor "PrimitiveType *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar9 + 0x24)" ( (binary_expression "(int)pdVar9 + 0x24" (cast_expression "(int)pdVar9" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pPVar34->coordinates = *(size_t *)(pdVar9 + 4);" (assignment_expression "pPVar34->coordinates = *(size_t *)(pdVar9 + 4)" (field_expression "pPVar34->coordinates" identifier -> field_identifier) = (pointer_expression "*(size_t *)(pdVar9 + 4)" * (cast_expression "(size_t *)(pdVar9 + 4)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar9 + 4)" ( (binary_expression "pdVar9 + 4" identifier + number_literal) ))))) ;) (expression_statement "pPVar34->primitive = PVar5;" (assignment_expression "pPVar34->primitive = PVar5" (field_expression "pPVar34->primitive" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar38 = *(undefined4 *)((int)&pPVar36[1].point.x + 4);" (assignment_expression "uVar38 = *(undefined4 *)((int)&pPVar36[1].point.x + 4)" identifier = (pointer_expression "*(undefined4 *)((int)&pPVar36[1].point.x + 4)" * (cast_expression "(undefined4 *)((int)&pPVar36[1].point.x + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pPVar36[1].point.x + 4)" ( (binary_expression "(int)&pPVar36[1].point.x + 4" (cast_expression "(int)&pPVar36[1].point.x" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pPVar36[1].point.x" & (field_expression "pPVar36[1].point.x" (field_expression "pPVar36[1].point" (subscript_expression "pPVar36[1]" identifier [ number_literal ]) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar37 = *(undefined4 *)&pPVar36[1].point.y;" (assignment_expression "uVar37 = *(undefined4 *)&pPVar36[1].point.y" identifier = (pointer_expression "*(undefined4 *)&pPVar36[1].point.y" * (cast_expression "(undefined4 *)&pPVar36[1].point.y" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pPVar36[1].point.y" & (field_expression "pPVar36[1].point.y" (field_expression "pPVar36[1].point" (subscript_expression "pPVar36[1]" identifier [ number_literal ]) . field_identifier) . field_identifier))))) ;) (expression_statement "uVar39 = *(undefined4 *)((int)&pPVar36[1].point.y + 4);" (assignment_expression "uVar39 = *(undefined4 *)((int)&pPVar36[1].point.y + 4)" identifier = (pointer_expression "*(undefined4 *)((int)&pPVar36[1].point.y + 4)" * (cast_expression "(undefined4 *)((int)&pPVar36[1].point.y + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pPVar36[1].point.y + 4)" ( (binary_expression "(int)&pPVar36[1].point.y + 4" (cast_expression "(int)&pPVar36[1].point.y" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pPVar36[1].point.y" & (field_expression "pPVar36[1].point.y" (field_expression "pPVar36[1].point" (subscript_expression "pPVar36[1]" identifier [ number_literal ]) . field_identifier) . field_identifier))) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)&(pPVar17->point).x = *(undefined4 *)&pPVar36[1].point.x;" (assignment_expression "*(undefined4 *)&(pPVar17->point).x = *(undefined4 *)&pPVar36[1].point.x" (pointer_expression "*(undefined4 *)&(pPVar17->point).x" * (cast_expression "(undefined4 *)&(pPVar17->point).x" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pPVar17->point).x" & (field_expression "(pPVar17->point).x" (parenthesized_expression "(pPVar17->point)" ( (field_expression "pPVar17->point" identifier -> field_identifier) )) . field_identifier)))) = (pointer_expression "*(undefined4 *)&pPVar36[1].point.x" * (cast_expression "(undefined4 *)&pPVar36[1].point.x" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pPVar36[1].point.x" & (field_expression "pPVar36[1].point.x" (field_expression "pPVar36[1].point" (subscript_expression "pPVar36[1]" identifier [ number_literal ]) . field_identifier) . field_identifier))))) ;) (expression_statement "*(undefined4 *)((int)&(pPVar17->point).x + 4) = uVar38;" (assignment_expression "*(undefined4 *)((int)&(pPVar17->point).x + 4) = uVar38" (pointer_expression "*(undefined4 *)((int)&(pPVar17->point).x + 4)" * (cast_expression "(undefined4 *)((int)&(pPVar17->point).x + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pPVar17->point).x + 4)" ( (binary_expression "(int)&(pPVar17->point).x + 4" (cast_expression "(int)&(pPVar17->point).x" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pPVar17->point).x" & (field_expression "(pPVar17->point).x" (parenthesized_expression "(pPVar17->point)" ( (field_expression "pPVar17->point" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)&(pPVar17->point).y = uVar37;" (assignment_expression "*(undefined4 *)&(pPVar17->point).y = uVar37" (pointer_expression "*(undefined4 *)&(pPVar17->point).y" * (cast_expression "(undefined4 *)&(pPVar17->point).y" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pPVar17->point).y" & (field_expression "(pPVar17->point).y" (parenthesized_expression "(pPVar17->point)" ( (field_expression "pPVar17->point" identifier -> field_identifier) )) . field_identifier)))) = identifier) ;) (expression_statement "*(undefined4 *)((int)&(pPVar17->point).y + 4) = uVar39;" (assignment_expression "*(undefined4 *)((int)&(pPVar17->point).y + 4) = uVar39" (pointer_expression "*(undefined4 *)((int)&(pPVar17->point).y + 4)" * (cast_expression "(undefined4 *)((int)&(pPVar17->point).y + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pPVar17->point).y + 4)" ( (binary_expression "(int)&(pPVar17->point).y + 4" (cast_expression "(int)&(pPVar17->point).y" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pPVar17->point).y" & (field_expression "(pPVar17->point).y" (parenthesized_expression "(pPVar17->point)" ( (field_expression "pPVar17->point" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "pPVar34 = pPVar18 + iVar13 + 2;" (assignment_expression "pPVar34 = pPVar18 + iVar13 + 2" identifier = (binary_expression "pPVar18 + iVar13 + 2" (binary_expression "pPVar18 + iVar13" identifier + identifier) + number_literal)) ;) (expression_statement "pdVar16 = pdVar9;" (assignment_expression "pdVar16 = pdVar9" identifier = identifier) ;) (expression_statement "pPVar17 = pPVar33;" (assignment_expression "pPVar17 = pPVar33" identifier = identifier) ;) (expression_statement "pPVar29 = pPVar33;" (assignment_expression "pPVar29 = pPVar33" identifier = identifier) ;) })) (do_statement "do {\n    pPVar36 = pPVar17;\n    pdVar28 = pdVar16;\n    pdVar16 = pdVar28 + 2;\n    sVar35 = *(size_t *)((int)pdVar28 + 4);\n    sVar49 = *(size_t *)(pdVar28 + 1);\n    sVar40 = *(size_t *)((int)pdVar28 + 0xc);\n    *(size_t *)&(pPVar36->point).x = *(size_t *)pdVar28;\n    *(size_t *)((int)&(pPVar36->point).x + 4) = sVar35;\n    *(size_t *)&(pPVar36->point).y = sVar49;\n    *(size_t *)((int)&(pPVar36->point).y + 4) = sVar40;\n    pPVar17 = (PrimitiveInfo *)&pPVar36->coordinates;\n  } while (pdVar16 != pdVar43);" do (compound_statement "{\n    pPVar36 = pPVar17;\n    pdVar28 = pdVar16;\n    pdVar16 = pdVar28 + 2;\n    sVar35 = *(size_t *)((int)pdVar28 + 4);\n    sVar49 = *(size_t *)(pdVar28 + 1);\n    sVar40 = *(size_t *)((int)pdVar28 + 0xc);\n    *(size_t *)&(pPVar36->point).x = *(size_t *)pdVar28;\n    *(size_t *)((int)&(pPVar36->point).x + 4) = sVar35;\n    *(size_t *)&(pPVar36->point).y = sVar49;\n    *(size_t *)((int)&(pPVar36->point).y + 4) = sVar40;\n    pPVar17 = (PrimitiveInfo *)&pPVar36->coordinates;\n  }" { (expression_statement "pPVar36 = pPVar17;" (assignment_expression "pPVar36 = pPVar17" identifier = identifier) ;) (expression_statement "pdVar28 = pdVar16;" (assignment_expression "pdVar28 = pdVar16" identifier = identifier) ;) (expression_statement "pdVar16 = pdVar28 + 2;" (assignment_expression "pdVar16 = pdVar28 + 2" identifier = (binary_expression "pdVar28 + 2" identifier + number_literal)) ;) (expression_statement "sVar35 = *(size_t *)((int)pdVar28 + 4);" (assignment_expression "sVar35 = *(size_t *)((int)pdVar28 + 4)" identifier = (pointer_expression "*(size_t *)((int)pdVar28 + 4)" * (cast_expression "(size_t *)((int)pdVar28 + 4)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar28 + 4)" ( (binary_expression "(int)pdVar28 + 4" (cast_expression "(int)pdVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "sVar49 = *(size_t *)(pdVar28 + 1);" (assignment_expression "sVar49 = *(size_t *)(pdVar28 + 1)" identifier = (pointer_expression "*(size_t *)(pdVar28 + 1)" * (cast_expression "(size_t *)(pdVar28 + 1)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar28 + 1)" ( (binary_expression "pdVar28 + 1" identifier + number_literal) ))))) ;) (expression_statement "sVar40 = *(size_t *)((int)pdVar28 + 0xc);" (assignment_expression "sVar40 = *(size_t *)((int)pdVar28 + 0xc)" identifier = (pointer_expression "*(size_t *)((int)pdVar28 + 0xc)" * (cast_expression "(size_t *)((int)pdVar28 + 0xc)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar28 + 0xc)" ( (binary_expression "(int)pdVar28 + 0xc" (cast_expression "(int)pdVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(size_t *)&(pPVar36->point).x = *(size_t *)pdVar28;" (assignment_expression "*(size_t *)&(pPVar36->point).x = *(size_t *)pdVar28" (pointer_expression "*(size_t *)&(pPVar36->point).x" * (cast_expression "(size_t *)&(pPVar36->point).x" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pPVar36->point).x" & (field_expression "(pPVar36->point).x" (parenthesized_expression "(pPVar36->point)" ( (field_expression "pPVar36->point" identifier -> field_identifier) )) . field_identifier)))) = (pointer_expression "*(size_t *)pdVar28" * (cast_expression "(size_t *)pdVar28" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(size_t *)((int)&(pPVar36->point).x + 4) = sVar35;" (assignment_expression "*(size_t *)((int)&(pPVar36->point).x + 4) = sVar35" (pointer_expression "*(size_t *)((int)&(pPVar36->point).x + 4)" * (cast_expression "(size_t *)((int)&(pPVar36->point).x + 4)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pPVar36->point).x + 4)" ( (binary_expression "(int)&(pPVar36->point).x + 4" (cast_expression "(int)&(pPVar36->point).x" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pPVar36->point).x" & (field_expression "(pPVar36->point).x" (parenthesized_expression "(pPVar36->point)" ( (field_expression "pPVar36->point" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(size_t *)&(pPVar36->point).y = sVar49;" (assignment_expression "*(size_t *)&(pPVar36->point).y = sVar49" (pointer_expression "*(size_t *)&(pPVar36->point).y" * (cast_expression "(size_t *)&(pPVar36->point).y" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pPVar36->point).y" & (field_expression "(pPVar36->point).y" (parenthesized_expression "(pPVar36->point)" ( (field_expression "pPVar36->point" identifier -> field_identifier) )) . field_identifier)))) = identifier) ;) (expression_statement "*(size_t *)((int)&(pPVar36->point).y + 4) = sVar40;" (assignment_expression "*(size_t *)((int)&(pPVar36->point).y + 4) = sVar40" (pointer_expression "*(size_t *)((int)&(pPVar36->point).y + 4)" * (cast_expression "(size_t *)((int)&(pPVar36->point).y + 4)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pPVar36->point).y + 4)" ( (binary_expression "(int)&(pPVar36->point).y + 4" (cast_expression "(int)&(pPVar36->point).y" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pPVar36->point).y" & (field_expression "(pPVar36->point).y" (parenthesized_expression "(pPVar36->point)" ( (field_expression "pPVar36->point" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "pPVar17 = (PrimitiveInfo *)&pPVar36->coordinates;" (assignment_expression "pPVar17 = (PrimitiveInfo *)&pPVar36->coordinates" identifier = (cast_expression "(PrimitiveInfo *)&pPVar36->coordinates" ( (type_descriptor "PrimitiveInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pPVar36->coordinates" & (field_expression "pPVar36->coordinates" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(pdVar16 != pdVar43)" ( (binary_expression "pdVar16 != pdVar43" identifier != identifier) )) ;) (expression_statement "PVar5 = *(PrimitiveType *)((int)pdVar28 + 0x14);" (assignment_expression "PVar5 = *(PrimitiveType *)((int)pdVar28 + 0x14)" identifier = (pointer_expression "*(PrimitiveType *)((int)pdVar28 + 0x14)" * (cast_expression "(PrimitiveType *)((int)pdVar28 + 0x14)" ( (type_descriptor "PrimitiveType *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar28 + 0x14)" ( (binary_expression "(int)pdVar28 + 0x14" (cast_expression "(int)pdVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pcVar48 = *(code **)(puVar47 + 0x3042b0);" (assignment_expression "pcVar48 = *(code **)(puVar47 + 0x3042b0)" identifier = (pointer_expression "*(code **)(puVar47 + 0x3042b0)" * (cast_expression "(code **)(puVar47 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3042b0)" ( (binary_expression "puVar47 + 0x3042b0" identifier + number_literal) ))))) ;) (expression_statement "pPVar36->coordinates = *(size_t *)pdVar16;" (assignment_expression "pPVar36->coordinates = *(size_t *)pdVar16" (field_expression "pPVar36->coordinates" identifier -> field_identifier) = (pointer_expression "*(size_t *)pdVar16" * (cast_expression "(size_t *)pdVar16" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pPVar36->primitive = PVar5;" (assignment_expression "pPVar36->primitive = PVar5" (field_expression "pPVar36->primitive" identifier -> field_identifier) = identifier) ;) (expression_statement "uVar39 = *(undefined4 *)((int)&(pPVar18->point).x + 4);" (assignment_expression "uVar39 = *(undefined4 *)((int)&(pPVar18->point).x + 4)" identifier = (pointer_expression "*(undefined4 *)((int)&(pPVar18->point).x + 4)" * (cast_expression "(undefined4 *)((int)&(pPVar18->point).x + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pPVar18->point).x + 4)" ( (binary_expression "(int)&(pPVar18->point).x + 4" (cast_expression "(int)&(pPVar18->point).x" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pPVar18->point).x" & (field_expression "(pPVar18->point).x" (parenthesized_expression "(pPVar18->point)" ( (field_expression "pPVar18->point" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar38 = *(undefined4 *)&(pPVar18->point).y;" (assignment_expression "uVar38 = *(undefined4 *)&(pPVar18->point).y" identifier = (pointer_expression "*(undefined4 *)&(pPVar18->point).y" * (cast_expression "(undefined4 *)&(pPVar18->point).y" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pPVar18->point).y" & (field_expression "(pPVar18->point).y" (parenthesized_expression "(pPVar18->point)" ( (field_expression "pPVar18->point" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "uVar37 = *(undefined4 *)((int)&(pPVar18->point).y + 4);" (assignment_expression "uVar37 = *(undefined4 *)((int)&(pPVar18->point).y + 4)" identifier = (pointer_expression "*(undefined4 *)((int)&(pPVar18->point).y + 4)" * (cast_expression "(undefined4 *)((int)&(pPVar18->point).y + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pPVar18->point).y + 4)" ( (binary_expression "(int)&(pPVar18->point).y + 4" (cast_expression "(int)&(pPVar18->point).y" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pPVar18->point).y" & (field_expression "(pPVar18->point).y" (parenthesized_expression "(pPVar18->point)" ( (field_expression "pPVar18->point" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)&(pPVar29->point).x = *(undefined4 *)&(pPVar18->point).x;" (assignment_expression "*(undefined4 *)&(pPVar29->point).x = *(undefined4 *)&(pPVar18->point).x" (pointer_expression "*(undefined4 *)&(pPVar29->point).x" * (cast_expression "(undefined4 *)&(pPVar29->point).x" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pPVar29->point).x" & (field_expression "(pPVar29->point).x" (parenthesized_expression "(pPVar29->point)" ( (field_expression "pPVar29->point" identifier -> field_identifier) )) . field_identifier)))) = (pointer_expression "*(undefined4 *)&(pPVar18->point).x" * (cast_expression "(undefined4 *)&(pPVar18->point).x" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pPVar18->point).x" & (field_expression "(pPVar18->point).x" (parenthesized_expression "(pPVar18->point)" ( (field_expression "pPVar18->point" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "*(undefined4 *)((int)&(pPVar29->point).x + 4) = uVar39;" (assignment_expression "*(undefined4 *)((int)&(pPVar29->point).x + 4) = uVar39" (pointer_expression "*(undefined4 *)((int)&(pPVar29->point).x + 4)" * (cast_expression "(undefined4 *)((int)&(pPVar29->point).x + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pPVar29->point).x + 4)" ( (binary_expression "(int)&(pPVar29->point).x + 4" (cast_expression "(int)&(pPVar29->point).x" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pPVar29->point).x" & (field_expression "(pPVar29->point).x" (parenthesized_expression "(pPVar29->point)" ( (field_expression "pPVar29->point" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)&(pPVar29->point).y = uVar38;" (assignment_expression "*(undefined4 *)&(pPVar29->point).y = uVar38" (pointer_expression "*(undefined4 *)&(pPVar29->point).y" * (cast_expression "(undefined4 *)&(pPVar29->point).y" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pPVar29->point).y" & (field_expression "(pPVar29->point).y" (parenthesized_expression "(pPVar29->point)" ( (field_expression "pPVar29->point" identifier -> field_identifier) )) . field_identifier)))) = identifier) ;) (expression_statement "*(undefined4 *)((int)&(pPVar29->point).y + 4) = uVar37;" (assignment_expression "*(undefined4 *)((int)&(pPVar29->point).y + 4) = uVar37" (pointer_expression "*(undefined4 *)((int)&(pPVar29->point).y + 4)" * (cast_expression "(undefined4 *)((int)&(pPVar29->point).y + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pPVar29->point).y + 4)" ( (binary_expression "(int)&(pPVar29->point).y + 4" (cast_expression "(int)&(pPVar29->point).y" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pPVar29->point).y" & (field_expression "(pPVar29->point).y" (parenthesized_expression "(pPVar29->point)" ( (field_expression "pPVar29->point" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "pPVar34->primitive = UndefinedPrimitive;" (assignment_expression "pPVar34->primitive = UndefinedPrimitive" (field_expression "pPVar34->primitive" identifier -> field_identifier) = identifier) ;) (expression_statement "pPVar18->coordinates = iVar44 + 1;" (assignment_expression "pPVar18->coordinates = iVar44 + 1" (field_expression "pPVar18->coordinates" identifier -> field_identifier) = (binary_expression "iVar44 + 1" identifier + number_literal)) ;) (expression_statement "(*pcVar48)(pdVar11);" (call_expression "(*pcVar48)(pdVar11)" (parenthesized_expression "(*pcVar48)" ( (pointer_expression "*pcVar48" * identifier) )) (argument_list "(pdVar11)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar47 + 0x3042b0))(pdVar12);" (call_expression "(**(code **)(puVar47 + 0x3042b0))(pdVar12)" (parenthesized_expression "(**(code **)(puVar47 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar47 + 0x3042b0)" * (pointer_expression "*(code **)(puVar47 + 0x3042b0)" * (cast_expression "(code **)(puVar47 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3042b0)" ( (binary_expression "puVar47 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar12)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar47 + 0x3042b0))(pdVar9);" (call_expression "(**(code **)(puVar47 + 0x3042b0))(pdVar9)" (parenthesized_expression "(**(code **)(puVar47 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar47 + 0x3042b0)" * (pointer_expression "*(code **)(puVar47 + 0x3042b0)" * (cast_expression "(code **)(puVar47 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3042b0)" ( (binary_expression "puVar47 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar9)" ( identifier ))) ;) (labeled_statement "LAB_000a61cc:\n  MVar6 = DrawPolygonPrimitive(image_00,draw_info_00,pPVar18,exception);" statement_identifier : (expression_statement "MVar6 = DrawPolygonPrimitive(image_00,draw_info_00,pPVar18,exception);" (assignment_expression "MVar6 = DrawPolygonPrimitive(image_00,draw_info_00,pPVar18,exception)" identifier = (call_expression "DrawPolygonPrimitive(image_00,draw_info_00,pPVar18,exception)" identifier (argument_list "(image_00,draw_info_00,pPVar18,exception)" ( identifier , identifier , identifier , identifier )))) ;)) (expression_statement "MStack_1d0 = MStack_1d0 & MVar6;" (assignment_expression "MStack_1d0 = MStack_1d0 & MVar6" identifier = (binary_expression "MStack_1d0 & MVar6" identifier & identifier)) ;) (expression_statement "(**(code **)(puVar47 + 0x3042b0))(pPVar18);" (call_expression "(**(code **)(puVar47 + 0x3042b0))(pPVar18)" (parenthesized_expression "(**(code **)(puVar47 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar47 + 0x3042b0)" * (pointer_expression "*(code **)(puVar47 + 0x3042b0)" * (cast_expression "(code **)(puVar47 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3042b0)" ( (binary_expression "puVar47 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pPVar18)" ( identifier ))) ;) (if_statement "if (MStack_1d0 == MagickFalse) goto LAB_000a5774;" if (parenthesized_expression "(MStack_1d0 == MagickFalse)" ( (binary_expression "MStack_1d0 == MagickFalse" identifier == identifier) )) (goto_statement "goto LAB_000a5774;" goto statement_identifier ;)) (expression_statement "sVar40 = pPStack_e8->coordinates;" (assignment_expression "sVar40 = pPStack_e8->coordinates" identifier = (field_expression "pPStack_e8->coordinates" identifier -> field_identifier)) ;) (expression_statement "iVar44 = sVar40 * 0x28;" (assignment_expression "iVar44 = sVar40 * 0x28" identifier = (binary_expression "sVar40 * 0x28" identifier * number_literal)) ;) (if_statement "if ((draw_info->linecap == RoundCap) && (pPStack_e8->closed_subpath == MagickFalse)) {\n    MVar6 = DrawRoundLinecap(image_00,draw_info,pPStack_e8,exception);\n    MVar19 = DrawRoundLinecap(image_00,draw_info,pPStack_e8 + (sVar40 - 1),exception);\n    MStack_1d0 = MVar6 & MVar19 & MagickTrue;\n    iVar44 = pPStack_e8->coordinates * 0x28;\n  }" if (parenthesized_expression "((draw_info->linecap == RoundCap) && (pPStack_e8->closed_subpath == MagickFalse))" ( (binary_expression "(draw_info->linecap == RoundCap) && (pPStack_e8->closed_subpath == MagickFalse)" (parenthesized_expression "(draw_info->linecap == RoundCap)" ( (binary_expression "draw_info->linecap == RoundCap" (field_expression "draw_info->linecap" identifier -> field_identifier) == identifier) )) && (parenthesized_expression "(pPStack_e8->closed_subpath == MagickFalse)" ( (binary_expression "pPStack_e8->closed_subpath == MagickFalse" (field_expression "pPStack_e8->closed_subpath" identifier -> field_identifier) == identifier) ))) )) (compound_statement "{\n    MVar6 = DrawRoundLinecap(image_00,draw_info,pPStack_e8,exception);\n    MVar19 = DrawRoundLinecap(image_00,draw_info,pPStack_e8 + (sVar40 - 1),exception);\n    MStack_1d0 = MVar6 & MVar19 & MagickTrue;\n    iVar44 = pPStack_e8->coordinates * 0x28;\n  }" { (expression_statement "MVar6 = DrawRoundLinecap(image_00,draw_info,pPStack_e8,exception);" (assignment_expression "MVar6 = DrawRoundLinecap(image_00,draw_info,pPStack_e8,exception)" identifier = (call_expression "DrawRoundLinecap(image_00,draw_info,pPStack_e8,exception)" identifier (argument_list "(image_00,draw_info,pPStack_e8,exception)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "MVar19 = DrawRoundLinecap(image_00,draw_info,pPStack_e8 + (sVar40 - 1),exception);" (assignment_expression "MVar19 = DrawRoundLinecap(image_00,draw_info,pPStack_e8 + (sVar40 - 1),exception)" identifier = (call_expression "DrawRoundLinecap(image_00,draw_info,pPStack_e8 + (sVar40 - 1),exception)" identifier (argument_list "(image_00,draw_info,pPStack_e8 + (sVar40 - 1),exception)" ( identifier , identifier , (binary_expression "pPStack_e8 + (sVar40 - 1)" identifier + (parenthesized_expression "(sVar40 - 1)" ( (binary_expression "sVar40 - 1" identifier - number_literal) ))) , identifier )))) ;) (expression_statement "MStack_1d0 = MVar6 & MVar19 & MagickTrue;" (assignment_expression "MStack_1d0 = MVar6 & MVar19 & MagickTrue" identifier = (binary_expression "MVar6 & MVar19 & MagickTrue" (binary_expression "MVar6 & MVar19" identifier & identifier) & identifier)) ;) (expression_statement "iVar44 = pPStack_e8->coordinates * 0x28;" (assignment_expression "iVar44 = pPStack_e8->coordinates * 0x28" identifier = (binary_expression "pPStack_e8->coordinates * 0x28" (field_expression "pPStack_e8->coordinates" identifier -> field_identifier) * number_literal)) ;) })) (labeled_statement "LAB_000a6620:\n  pPStack_e8 = (PrimitiveInfo *)((int)&(pPStack_e8->point).x + iVar44);" statement_identifier : (expression_statement "pPStack_e8 = (PrimitiveInfo *)((int)&(pPStack_e8->point).x + iVar44);" (assignment_expression "pPStack_e8 = (PrimitiveInfo *)((int)&(pPStack_e8->point).x + iVar44)" identifier = (cast_expression "(PrimitiveInfo *)((int)&(pPStack_e8->point).x + iVar44)" ( (type_descriptor "PrimitiveInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pPStack_e8->point).x + iVar44)" ( (binary_expression "(int)&(pPStack_e8->point).x + iVar44" (cast_expression "(int)&(pPStack_e8->point).x" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pPStack_e8->point).x" & (field_expression "(pPStack_e8->point).x" (parenthesized_expression "(pPStack_e8->point)" ( (field_expression "pPStack_e8->point" identifier -> field_identifier) )) . field_identifier))) + identifier) )))) ;)) (if_statement "if (pPStack_e8->primitive == UndefinedPrimitive) goto code_r0x000a6634;" if (parenthesized_expression "(pPStack_e8->primitive == UndefinedPrimitive)" ( (binary_expression "pPStack_e8->primitive == UndefinedPrimitive" (field_expression "pPStack_e8->primitive" identifier -> field_identifier) == identifier) )) (goto_statement "goto code_r0x000a6634;" goto statement_identifier ;)) (goto_statement "goto LAB_000a4e98;" goto statement_identifier ;) (labeled_statement "code_r0x000a6634:\n  pcVar48 = *(code **)(puVar47 + 0x3042d8);" statement_identifier : (expression_statement "pcVar48 = *(code **)(puVar47 + 0x3042d8);" (assignment_expression "pcVar48 = *(code **)(puVar47 + 0x3042d8)" identifier = (pointer_expression "*(code **)(puVar47 + 0x3042d8)" * (cast_expression "(code **)(puVar47 + 0x3042d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar47 + 0x3042d8)" ( (binary_expression "puVar47 + 0x3042d8" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_000a5778;" goto statement_identifier ;) })))
(translation_unit "uint FUN_000a4c0c(undefined4 param_1,int param_2,undefined4 *param_3,undefined4 param_4)\n\n{\n  bool bVar1;\n  bool bVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  double *pdVar6;\n  double *pdVar7;\n  double *pdVar8;\n  int iVar9;\n  double *pdVar10;\n  double *pdVar11;\n  undefined4 *puVar12;\n  undefined4 *puVar13;\n  uint uVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  int iVar18;\n  int iVar19;\n  int iVar20;\n  double *pdVar21;\n  undefined4 *puVar22;\n  undefined4 *puVar23;\n  undefined4 *puVar24;\n  undefined4 *puVar25;\n  undefined4 uVar26;\n  undefined4 uVar27;\n  undefined4 uVar28;\n  int iVar29;\n  uint uVar30;\n  double *pdVar31;\n  int iVar32;\n  int iVar33;\n  uint uVar34;\n  int iVar35;\n  undefined *puVar36;\n  code *pcVar37;\n  int iVar38;\n  double dVar39;\n  double dVar40;\n  undefined8 uVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  undefined8 uVar45;\n  double dVar46;\n  double dVar47;\n  double dVar48;\n  double dVar49;\n  double dVar50;\n  double dVar51;\n  double dVar52;\n  double dVar53;\n  double dVar54;\n  double dVar55;\n  double dVar56;\n  double dVar57;\n  double dVar58;\n  double dVar59;\n  undefined8 uVar60;\n  double dVar61;\n  double dVar62;\n  double dVar63;\n  double dVar64;\n  double dStack_2b8;\n  double dStack_2b0;\n  double dStack_2a8;\n  double dStack_2a0;\n  double dStack_288;\n  double dStack_280;\n  double dStack_278;\n  double dStack_270;\n  double dStack_260;\n  double dStack_258;\n  double dStack_250;\n  double dStack_248;\n  double dStack_240;\n  double dStack_238;\n  uint uStack_22c;\n  uint uStack_1d0;\n  int iStack_188;\n  double *pdStack_e8;\n  double local_d8 [2];\n  undefined4 local_c8;\n  double local_b0;\n  double local_88;\n  double local_80;\n  double local_58;\n  double adStack_38 [2];\n  undefined4 local_24;\n  int local_c;\n  \n  puVar36 = PTR___stack_chk_guard_003a9230;\n  pdStack_e8 = local_d8;\n  local_c = *(int *)PTR___stack_chk_guard_003a9230;\n  puVar13 = param_3;\n  pdVar6 = pdStack_e8;\n  pdVar7 = pdStack_e8;\n  do {\n    do {\n      pdVar8 = pdVar6;\n      puVar12 = puVar13;\n      puVar13 = puVar12 + 4;\n      uVar28 = puVar12[1];\n      uVar27 = puVar12[2];\n      uVar26 = puVar12[3];\n      *(undefined4 *)pdVar8 = *puVar12;\n      *(undefined4 *)((int)pdVar8 + 4) = uVar28;\n      *(undefined4 *)(pdVar8 + 1) = uVar27;\n      *(undefined4 *)((int)pdVar8 + 0xc) = uVar26;\n      pdVar6 = pdVar8 + 2;\n    } while (puVar13 != param_3 + 8);\n    pdVar7 = pdVar7 + 5;\n    uVar26 = puVar12[5];\n    *(undefined4 *)(pdVar8 + 2) = *puVar13;\n    *(undefined4 *)((int)pdVar8 + 0x14) = uVar26;\n    puVar13 = param_3;\n    pdVar6 = pdVar7;\n  } while (pdVar7 != adStack_38);\n  dVar39 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x47c8);\n  local_24 = 0;\n  local_c8 = 4;\n  local_b0 = local_b0 + dVar39;\n  local_88 = local_88 + dVar39;\n  local_80 = local_80 + dVar39;\n  local_58 = local_58 + dVar39;\n  uVar4 = FUN_000a2d58();\n  if (local_c == *(int *)puVar36) {\n    return uVar4;\n  }\n  iVar17 = local_c;\n  puVar36 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  if (*(int *)(iVar17 + 0x3350) != 0) {\n    (**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x168f,*(int *)(puVar36 + 0x303bd8) + 0x3dd8);\n  }\n  iVar5 = (**(code **)(puVar36 + 0x3044ec))(0,param_2);\n  puVar13 = (undefined4 *)(iVar5 + 0x48);\n  puVar12 = (undefined4 *)(param_2 + 0xa0);\n  do {\n    puVar23 = puVar12;\n    puVar22 = puVar13;\n    puVar12 = puVar23 + 4;\n    uVar28 = puVar23[1];\n    uVar27 = puVar23[2];\n    uVar26 = puVar23[3];\n    *puVar22 = *puVar23;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    puVar13 = puVar22 + 4;\n  } while (puVar12 != (undefined4 *)(param_2 + 0xf0));\n  uVar26 = puVar23[5];\n  iVar18 = *(int *)(iVar5 + 0x1a8);\n  puVar22[4] = *puVar12;\n  puVar22[5] = uVar26;\n  if (iVar18 != 0) {\n    uVar26 = (**(code **)(puVar36 + 0x30423c))();\n    *(undefined4 *)(iVar5 + 0x1a8) = uVar26;\n  }\n  if (*(int *)(iVar5 + 0x1ac) != 0) {\n    uVar26 = (**(code **)(puVar36 + 0x304b20))(*(int *)(iVar5 + 0x1ac),0,0,1,param_4);\n    *(undefined4 *)(iVar5 + 0x1a8) = uVar26;\n  }\n  iVar18 = *(int *)((int)pdStack_e8 + 0x14);\n  *(undefined4 *)(iVar5 + 0xec) = 0;\n  *(undefined4 *)(iVar5 + 0xe8) = 0;\n  *(undefined4 *)(iVar5 + 0x1b4) = 0;\n  *(undefined4 *)(iVar5 + 0x1b0) = 0;\n  *(undefined4 *)(iVar5 + 0x240) = 2;\n  if (iVar18 != 0) {\n    iVar18 = *(int *)(puVar36 + 0x303bd0);\n    iVar19 = *(int *)(puVar36 + 0x303bd8);\n    uStack_1d0 = 1;\n    dVar39 = *(double *)(iVar18 + 0x13f8);\n    iVar15 = *(int *)(puVar36 + 0x303bd0);\n    dVar40 = *(double *)(iVar15 + 0x1410);\n    uVar41 = *(undefined8 *)(iVar19 + 0x34a0);\nLAB_000a4e98:\n    iVar29 = *(int *)(pdStack_e8 + 2);\n    if (iVar29 == 1) {\n      iVar29 = 0x28;\n      goto LAB_000a6620;\n    }\n    pdVar6 = (double *)(**(code **)(puVar36 + 0x3047fc))(iVar29 + 2,0x28);\n    if (pdVar6 != (double *)0x0) {\n      iVar32 = iVar29 * 0x28;\n      (**(code **)(puVar36 + 0x304648))(pdVar6,pdStack_e8,iVar32);\n      pdVar7 = pdVar6 + iVar29 * 5;\n      if ((ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8) < dVar39) &&\n         (ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]) < dVar39)) {\n        if (*(int *)(param_2 + 0x248) - 1U < 2) {\n          pdVar8 = pdStack_e8 + 5;\n          do {\n            pdVar21 = pdVar7;\n            pdVar11 = pdVar8;\n            pdVar8 = pdVar11 + 2;\n            uVar28 = *(undefined4 *)(pdVar11 + 1);\n            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n            uVar27 = *(undefined4 *)pdVar11;\n            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);\n            *(undefined4 *)(pdVar21 + 1) = uVar28;\n            *(undefined4 *)pdVar21 = uVar27;\n            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;\n            pdVar7 = pdVar21 + 2;\n          } while (pdVar8 != pdStack_e8 + 9);\n          iVar32 = iVar32 + 0x28;\n          uVar26 = *(undefined4 *)pdVar8;\n          pdVar7 = pdVar6 + iVar29 * 5 + 5;\n          *(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14);\n          *(undefined4 *)(pdVar21 + 2) = uVar26;\n          iVar29 = iVar29 + 1;\n        }\n        iStack_188 = 1;\n        bVar2 = true;\n        bVar1 = iVar29 < 2;\n        *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n        if (bVar1) goto LAB_000a6124;\nLAB_000a4fe8:\n        dVar61 = *(double *)(iVar18 + 0x13f8);\n        dStack_260 = pdVar6[5] - *pdVar6;\n        dStack_258 = pdVar6[6] - pdVar6[1];\n        if ((dVar61 <= ABS(dStack_260)) || (dVar61 <= ABS(dStack_258))) {\n          iVar38 = 1;\n        }\n        else {\n          iVar38 = 1;\n          pdVar7 = pdVar6 + 10;\n          do {\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));\n        }\nLAB_000a5110:\n        uVar4 = iVar29 * 2;\n        pdVar7 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        pdVar8 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        if (pdVar7 == (double *)0x0) {\n          if (pdVar8 != (double *)0x0) {\n            (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n          uVar26 = 0x1c93;\n          goto LAB_000a5724;\n        }\n        if (pdVar8 == (double *)0x0) {\n          (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n          goto LAB_000a6cbc;\n        }\n        if (ABS(dStack_260) < *(double *)(iVar18 + 0x13f8)) {\n          dVar61 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else if (ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)) {\n          dVar52 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }\nLAB_000a51b0:\n        dVar42 = (double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18);\n        iVar16 = *(int *)(param_2 + 0x24c) * *(int *)(param_2 + 0x24c);\n        dVar42 = dVar42 * *(double *)(param_2 + 0x1b0) *\n                 *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400);\n        dVar46 = (double)iVar16;\n        if (iVar16 < 0) {\n          dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418);\n        }\n        dVar46 = dVar46 * dVar42 * dVar42;\n        if (*(int *)(param_2 + 0x244) == 3) {\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            iVar16 = iVar29 + -2;\n            dVar50 = pdVar11[1];\n            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);\n            pdVar21 = pdVar6 + iVar16 * 5;\n            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            dVar50 = pdVar21[1];\n            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            goto LAB_000a5220;\n          }\n        }\n        else {\nLAB_000a5220:\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n        }\n        dVar43 = dVar42 * dVar42;\n        dVar53 = dVar43 / (dVar61 * dVar61 + *(double *)(iVar16 + 0x1438));\n        dVar64 = SQRT(dVar53);\n        if (dVar53 < 0.0) {\n          (**(code **)(puVar36 + 0x304770))();\n        }\n        dVar61 = dVar61 * dVar64;\n        pdVar11 = pdVar6 + iVar38 * 5;\n        dVar58 = *pdVar11;\n        dVar62 = pdVar11[1];\n        dVar57 = dVar61 + pdVar6[1];\n        dVar55 = pdVar6[1] - dVar61;\n        dVar53 = dVar64 + *pdVar6;\n        dStack_238 = dVar62 - dVar61;\n        dStack_240 = dVar58 - dVar64;\n        dVar56 = *pdVar6 - dVar64;\n        dVar51 = dVar56;\n        dVar50 = dVar57;\n        dStack_250 = dVar64 + dVar58;\n        dStack_248 = dVar61 + dVar62;\n        if (0.0 < dVar64 * dStack_258 - dVar61 * dStack_260) {\n          dVar51 = dVar53;\n          dVar50 = dVar55;\n          dVar53 = dVar56;\n          dVar55 = dVar57;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar64 + dVar58;\n          dStack_238 = dVar61 + dVar62;\n        }\n        iVar32 = iVar38 + 1;\n        *pdVar8 = dVar51;\n        pdVar8[1] = dVar55;\n        *pdVar7 = dVar53;\n        pdVar7[1] = dVar50;\n        if (iVar32 < iVar29) {\n          iVar20 = *(int *)(puVar36 + 0x303bd8);\n          iVar33 = 1;\n          iVar35 = 1;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78);\n          dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar4;\n          do {\n            dVar44 = pdVar11[6];\n            dVar47 = pdVar11[5];\n            dVar48 = dVar44 - dVar62;\n            dVar54 = dVar47 - dVar58;\n            dVar49 = dVar47 - dVar58;\n            dVar56 = dStack_238;\n            dVar57 = dStack_240;\n            dVar59 = dStack_248;\n            dVar63 = dStack_250;\n            if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar63;\n            dStack_248 = dVar59;\n            dStack_240 = dVar57;\n            dStack_238 = dVar56;\n            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;\n            pdVar11 = pdVar11 + 5;\n            iVar32 = iVar32 + 1;\n            dVar58 = pdVar6[iVar38 * 5];\n            dVar62 = (pdVar6 + iVar38 * 5)[1];\n          } while( true );\n        }\n        iVar38 = 4;\n        iVar32 = 0x10;\n        iVar35 = 0x10;\n        iVar29 = 2;\n        goto LAB_000a5a70;\n      }\n      bVar1 = iVar29 < 2;\n      iStack_188 = 0;\n      bVar2 = false;\n      *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n      if (!bVar1) goto LAB_000a4fe8;\nLAB_000a6124:\n      if (iVar29 != 1) {\n        iVar38 = 1;\n        dStack_258 = 0.0;\n        dStack_260 = 0.0;\n        goto LAB_000a5110;\n      }\n      iVar38 = 1;\n      dStack_258 = 0.0;\n      iVar16 = *(int *)(param_2 + 0x244);\n      dStack_260 = 0.0;\njoined_r0x000a50f8:\n      if (iVar16 == 2) {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n        if (!bVar2) {\n          iVar38 = iVar38 + -1;\n          goto LAB_000a5110;\n        }\n      }\n      else {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n      }\n      puVar13 = (undefined4 *)(*pcVar37)(0x28);\n      pdVar7 = pdVar6;\n      puVar12 = puVar13;\n      do {\n        puVar22 = puVar12;\n        pdVar8 = pdVar7;\n        pdVar7 = pdVar8 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar8 + 4);\n        uVar27 = *(undefined4 *)(pdVar8 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar8 + 0xc);\n        *puVar22 = *(undefined4 *)pdVar8;\n        puVar22[1] = uVar28;\n        puVar22[2] = uVar27;\n        puVar22[3] = uVar26;\n        puVar12 = puVar22 + 4;\n      } while (pdVar7 != pdVar6 + 4);\n      uVar26 = *(undefined4 *)((int)pdVar8 + 0x14);\n      pcVar37 = *(code **)(puVar36 + 0x3042b0);\n      puVar22[4] = *(undefined4 *)pdVar7;\n      puVar22[5] = uVar26;\n      puVar13[4] = 0;\n      (*pcVar37)(pdVar6);\n      goto LAB_000a61cc;\n    }\n    uVar26 = 0x1c57;\nLAB_000a5724:\n    (**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               uVar26,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);\n    uStack_1d0 = 0;\n    goto LAB_000a5774;\n  }\n  uStack_1d0 = 1;\nLAB_000a5774:\n  pcVar37 = *(code **)(puVar36 + 0x3042d8);\nLAB_000a5778:\n  (*pcVar37)(iVar5);\n  if (*(int *)(iVar17 + 0x3350) != 0) {\n    (**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x16b4,*(int *)(puVar36 + 0x303bd8) + 0x3df8);\n  }\n  return uStack_1d0;\nLAB_000a5a58:\n  iVar29 = iVar35 + 1;\n  iVar35 = iVar35 << 4;\n  iVar32 = iVar33 << 4;\n  iVar38 = iVar33 + 1 + iVar29;\nLAB_000a5a70:\n  pcVar37 = *(code **)(puVar36 + 0x3047fc);\n  iVar38 = iStack_188 * 2 + iVar38;\n  *(double *)((int)pdVar7 + iVar35) = dStack_250;\n  ((double *)((int)pdVar7 + iVar35))[1] = dStack_248;\n  *(double *)((int)pdVar8 + iVar32) = dStack_240;\n  ((double *)((int)pdVar8 + iVar32))[1] = dStack_238;\n  puVar13 = (undefined4 *)(*pcVar37)(iVar38 + 2,0x28);\n  if (puVar13 == (undefined4 *)0x0) {\n    (**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               0x1dbc,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n    uStack_1d0 = 0;\n    goto LAB_000a5774;\n  }\n  pdVar31 = pdVar6 + 4;\n  pdVar11 = pdVar6;\n  puVar12 = puVar13;\n  pdVar21 = pdVar7;\n  puVar22 = puVar13;\n  do {\n    do {\n      puVar23 = puVar12;\n      pdVar10 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar10;\n      puVar12 = puVar23 + 4;\n    } while (pdVar10 != pdVar31);\n    pdVar10 = pdVar21 + 2;\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar23[4] = *(undefined4 *)pdVar31;\n    puVar23[5] = uVar26;\n    uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n    uVar27 = *(undefined4 *)(pdVar21 + 1);\n    uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n    *puVar22 = *(undefined4 *)pdVar21;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    pdVar11 = pdVar6;\n    puVar12 = puVar22 + 10;\n    pdVar21 = pdVar10;\n    puVar22 = puVar22 + 10;\n  } while (pdVar7 + iVar29 * 2 != pdVar10);\n  puVar22 = puVar13 + iVar29 * 10;\n  puVar12 = puVar22;\n  if (bVar2) {\n    do {\n      puVar23 = puVar12;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar12 = puVar23 + 4;\n    } while (pdVar21 != pdVar31);\n    iVar29 = iVar29 + 1;\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar23[4] = *(undefined4 *)(pdVar6 + 4);\n    puVar23[5] = uVar26;\n    uVar28 = puVar13[1];\n    uVar27 = puVar13[2];\n    uVar26 = puVar13[3];\n    puVar12 = puVar13 + iVar29 * 10;\n    *puVar22 = *puVar13;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n  }\n  iStack_188 = iVar38 - iStack_188;\n  if (iVar29 < iStack_188) {\n    pdVar11 = pdVar6;\n    puVar12 = puVar13 + iVar29 * 10;\n    pdVar21 = pdVar8 + ((iStack_188 + 0xfffffff) - iVar29) * 2;\n    puVar23 = puVar13 + iVar29 * 10;\n    do {\n      do {\n        puVar25 = puVar12;\n        pdVar10 = pdVar11 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n        uVar27 = *(undefined4 *)(pdVar11 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n        *puVar25 = *(undefined4 *)pdVar11;\n        puVar25[1] = uVar28;\n        puVar25[2] = uVar27;\n        puVar25[3] = uVar26;\n        pdVar11 = pdVar10;\n        puVar12 = puVar25 + 4;\n      } while (pdVar10 != pdVar31);\n      pdVar10 = pdVar21 + -2;\n      uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n      puVar25[4] = *(undefined4 *)pdVar31;\n      puVar25[5] = uVar26;\n      uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n      uVar27 = *(undefined4 *)(pdVar21 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar21;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar6;\n      puVar12 = puVar23 + 10;\n      pdVar21 = pdVar10;\n      puVar23 = puVar23 + 10;\n    } while (pdVar8 + -2 != pdVar10);\n    puVar12 = puVar13 + iStack_188 * 10;\n    iVar29 = iStack_188;\n  }\n  puVar24 = puVar13 + (iVar29 + 1) * 10;\n  pdVar11 = pdVar6;\n  puVar23 = puVar12;\n  puVar25 = puVar24;\n  if (bVar2) {\n    do {\n      puVar25 = puVar23;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar25 = *(undefined4 *)pdVar11;\n      puVar25[1] = uVar28;\n      puVar25[2] = uVar27;\n      puVar25[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar23 = puVar25 + 4;\n    } while (pdVar21 != pdVar31);\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar25[4] = *(undefined4 *)(pdVar6 + 4);\n    puVar25[5] = uVar26;\n    uVar27 = puVar22[0xb];\n    uVar26 = puVar22[0xc];\n    uVar28 = puVar22[0xd];\n    *puVar12 = puVar22[10];\n    puVar12[1] = uVar27;\n    puVar12[2] = uVar26;\n    puVar12[3] = uVar28;\n    puVar25 = puVar13 + (iVar29 + 1) * 10 + 10;\n    pdVar11 = pdVar6;\n    puVar12 = puVar24;\n    puVar23 = puVar24;\n  }\n  do {\n    puVar22 = puVar12;\n    pdVar21 = pdVar11;\n    pdVar11 = pdVar21 + 2;\n    uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n    uVar27 = *(undefined4 *)(pdVar21 + 1);\n    uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n    *puVar22 = *(undefined4 *)pdVar21;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    puVar12 = puVar22 + 4;\n  } while (pdVar11 != pdVar31);\n  uVar26 = *(undefined4 *)((int)pdVar21 + 0x14);\n  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n  puVar22[4] = *(undefined4 *)pdVar11;\n  puVar22[5] = uVar26;\n  uVar28 = puVar13[1];\n  uVar27 = puVar13[2];\n  uVar26 = puVar13[3];\n  *puVar23 = *puVar13;\n  puVar23[1] = uVar28;\n  puVar23[2] = uVar27;\n  puVar23[3] = uVar26;\n  puVar25[5] = 0;\n  puVar13[4] = iVar38 + 1;\n  (*pcVar37)(pdVar7);\n  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n  (**(code **)(puVar36 + 0x3042b0))(pdVar6);\nLAB_000a61cc:\n  uVar4 = FUN_000a2d58(iVar17,iVar5,puVar13,param_4);\n  uStack_1d0 = uStack_1d0 & uVar4;\n  (**(code **)(puVar36 + 0x3042b0))(puVar13);\n  if (uStack_1d0 == 0) goto LAB_000a5774;\n  iVar32 = *(int *)(pdStack_e8 + 2);\n  iVar29 = iVar32 * 0x28;\n  if ((*(int *)(param_2 + 0x244) == 2) && (*(int *)(pdStack_e8 + 4) == 0)) {\n    uVar4 = FUN_000a4c0c(iVar17,param_2,pdStack_e8,param_4);\n    uVar14 = FUN_000a4c0c(iVar17,param_2,pdStack_e8 + iVar32 * 5 + -5,param_4);\n    uStack_1d0 = uVar4 & uVar14 & 1;\n    iVar29 = *(int *)(pdStack_e8 + 2) * 0x28;\n  }\nLAB_000a6620:\n  pdStack_e8 = (double *)((int)pdStack_e8 + iVar29);\n  if (*(int *)((int)pdStack_e8 + 0x14) == 0) goto code_r0x000a6634;\n  goto LAB_000a4e98;\ncode_r0x000a6634:\n  pcVar37 = *(code **)(puVar36 + 0x3042d8);\n  goto LAB_000a5778;\n}\n\n" (function_definition "uint FUN_000a4c0c(undefined4 param_1,int param_2,undefined4 *param_3,undefined4 param_4)\n\n{\n  bool bVar1;\n  bool bVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  double *pdVar6;\n  double *pdVar7;\n  double *pdVar8;\n  int iVar9;\n  double *pdVar10;\n  double *pdVar11;\n  undefined4 *puVar12;\n  undefined4 *puVar13;\n  uint uVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  int iVar18;\n  int iVar19;\n  int iVar20;\n  double *pdVar21;\n  undefined4 *puVar22;\n  undefined4 *puVar23;\n  undefined4 *puVar24;\n  undefined4 *puVar25;\n  undefined4 uVar26;\n  undefined4 uVar27;\n  undefined4 uVar28;\n  int iVar29;\n  uint uVar30;\n  double *pdVar31;\n  int iVar32;\n  int iVar33;\n  uint uVar34;\n  int iVar35;\n  undefined *puVar36;\n  code *pcVar37;\n  int iVar38;\n  double dVar39;\n  double dVar40;\n  undefined8 uVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  undefined8 uVar45;\n  double dVar46;\n  double dVar47;\n  double dVar48;\n  double dVar49;\n  double dVar50;\n  double dVar51;\n  double dVar52;\n  double dVar53;\n  double dVar54;\n  double dVar55;\n  double dVar56;\n  double dVar57;\n  double dVar58;\n  double dVar59;\n  undefined8 uVar60;\n  double dVar61;\n  double dVar62;\n  double dVar63;\n  double dVar64;\n  double dStack_2b8;\n  double dStack_2b0;\n  double dStack_2a8;\n  double dStack_2a0;\n  double dStack_288;\n  double dStack_280;\n  double dStack_278;\n  double dStack_270;\n  double dStack_260;\n  double dStack_258;\n  double dStack_250;\n  double dStack_248;\n  double dStack_240;\n  double dStack_238;\n  uint uStack_22c;\n  uint uStack_1d0;\n  int iStack_188;\n  double *pdStack_e8;\n  double local_d8 [2];\n  undefined4 local_c8;\n  double local_b0;\n  double local_88;\n  double local_80;\n  double local_58;\n  double adStack_38 [2];\n  undefined4 local_24;\n  int local_c;\n  \n  puVar36 = PTR___stack_chk_guard_003a9230;\n  pdStack_e8 = local_d8;\n  local_c = *(int *)PTR___stack_chk_guard_003a9230;\n  puVar13 = param_3;\n  pdVar6 = pdStack_e8;\n  pdVar7 = pdStack_e8;\n  do {\n    do {\n      pdVar8 = pdVar6;\n      puVar12 = puVar13;\n      puVar13 = puVar12 + 4;\n      uVar28 = puVar12[1];\n      uVar27 = puVar12[2];\n      uVar26 = puVar12[3];\n      *(undefined4 *)pdVar8 = *puVar12;\n      *(undefined4 *)((int)pdVar8 + 4) = uVar28;\n      *(undefined4 *)(pdVar8 + 1) = uVar27;\n      *(undefined4 *)((int)pdVar8 + 0xc) = uVar26;\n      pdVar6 = pdVar8 + 2;\n    } while (puVar13 != param_3 + 8);\n    pdVar7 = pdVar7 + 5;\n    uVar26 = puVar12[5];\n    *(undefined4 *)(pdVar8 + 2) = *puVar13;\n    *(undefined4 *)((int)pdVar8 + 0x14) = uVar26;\n    puVar13 = param_3;\n    pdVar6 = pdVar7;\n  } while (pdVar7 != adStack_38);\n  dVar39 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x47c8);\n  local_24 = 0;\n  local_c8 = 4;\n  local_b0 = local_b0 + dVar39;\n  local_88 = local_88 + dVar39;\n  local_80 = local_80 + dVar39;\n  local_58 = local_58 + dVar39;\n  uVar4 = FUN_000a2d58();\n  if (local_c == *(int *)puVar36) {\n    return uVar4;\n  }\n  iVar17 = local_c;\n  puVar36 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  if (*(int *)(iVar17 + 0x3350) != 0) {\n    (**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x168f,*(int *)(puVar36 + 0x303bd8) + 0x3dd8);\n  }\n  iVar5 = (**(code **)(puVar36 + 0x3044ec))(0,param_2);\n  puVar13 = (undefined4 *)(iVar5 + 0x48);\n  puVar12 = (undefined4 *)(param_2 + 0xa0);\n  do {\n    puVar23 = puVar12;\n    puVar22 = puVar13;\n    puVar12 = puVar23 + 4;\n    uVar28 = puVar23[1];\n    uVar27 = puVar23[2];\n    uVar26 = puVar23[3];\n    *puVar22 = *puVar23;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    puVar13 = puVar22 + 4;\n  } while (puVar12 != (undefined4 *)(param_2 + 0xf0));\n  uVar26 = puVar23[5];\n  iVar18 = *(int *)(iVar5 + 0x1a8);\n  puVar22[4] = *puVar12;\n  puVar22[5] = uVar26;\n  if (iVar18 != 0) {\n    uVar26 = (**(code **)(puVar36 + 0x30423c))();\n    *(undefined4 *)(iVar5 + 0x1a8) = uVar26;\n  }\n  if (*(int *)(iVar5 + 0x1ac) != 0) {\n    uVar26 = (**(code **)(puVar36 + 0x304b20))(*(int *)(iVar5 + 0x1ac),0,0,1,param_4);\n    *(undefined4 *)(iVar5 + 0x1a8) = uVar26;\n  }\n  iVar18 = *(int *)((int)pdStack_e8 + 0x14);\n  *(undefined4 *)(iVar5 + 0xec) = 0;\n  *(undefined4 *)(iVar5 + 0xe8) = 0;\n  *(undefined4 *)(iVar5 + 0x1b4) = 0;\n  *(undefined4 *)(iVar5 + 0x1b0) = 0;\n  *(undefined4 *)(iVar5 + 0x240) = 2;\n  if (iVar18 != 0) {\n    iVar18 = *(int *)(puVar36 + 0x303bd0);\n    iVar19 = *(int *)(puVar36 + 0x303bd8);\n    uStack_1d0 = 1;\n    dVar39 = *(double *)(iVar18 + 0x13f8);\n    iVar15 = *(int *)(puVar36 + 0x303bd0);\n    dVar40 = *(double *)(iVar15 + 0x1410);\n    uVar41 = *(undefined8 *)(iVar19 + 0x34a0);\nLAB_000a4e98:\n    iVar29 = *(int *)(pdStack_e8 + 2);\n    if (iVar29 == 1) {\n      iVar29 = 0x28;\n      goto LAB_000a6620;\n    }\n    pdVar6 = (double *)(**(code **)(puVar36 + 0x3047fc))(iVar29 + 2,0x28);\n    if (pdVar6 != (double *)0x0) {\n      iVar32 = iVar29 * 0x28;\n      (**(code **)(puVar36 + 0x304648))(pdVar6,pdStack_e8,iVar32);\n      pdVar7 = pdVar6 + iVar29 * 5;\n      if ((ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8) < dVar39) &&\n         (ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]) < dVar39)) {\n        if (*(int *)(param_2 + 0x248) - 1U < 2) {\n          pdVar8 = pdStack_e8 + 5;\n          do {\n            pdVar21 = pdVar7;\n            pdVar11 = pdVar8;\n            pdVar8 = pdVar11 + 2;\n            uVar28 = *(undefined4 *)(pdVar11 + 1);\n            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n            uVar27 = *(undefined4 *)pdVar11;\n            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);\n            *(undefined4 *)(pdVar21 + 1) = uVar28;\n            *(undefined4 *)pdVar21 = uVar27;\n            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;\n            pdVar7 = pdVar21 + 2;\n          } while (pdVar8 != pdStack_e8 + 9);\n          iVar32 = iVar32 + 0x28;\n          uVar26 = *(undefined4 *)pdVar8;\n          pdVar7 = pdVar6 + iVar29 * 5 + 5;\n          *(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14);\n          *(undefined4 *)(pdVar21 + 2) = uVar26;\n          iVar29 = iVar29 + 1;\n        }\n        iStack_188 = 1;\n        bVar2 = true;\n        bVar1 = iVar29 < 2;\n        *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n        if (bVar1) goto LAB_000a6124;\nLAB_000a4fe8:\n        dVar61 = *(double *)(iVar18 + 0x13f8);\n        dStack_260 = pdVar6[5] - *pdVar6;\n        dStack_258 = pdVar6[6] - pdVar6[1];\n        if ((dVar61 <= ABS(dStack_260)) || (dVar61 <= ABS(dStack_258))) {\n          iVar38 = 1;\n        }\n        else {\n          iVar38 = 1;\n          pdVar7 = pdVar6 + 10;\n          do {\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));\n        }\nLAB_000a5110:\n        uVar4 = iVar29 * 2;\n        pdVar7 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        pdVar8 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        if (pdVar7 == (double *)0x0) {\n          if (pdVar8 != (double *)0x0) {\n            (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n          uVar26 = 0x1c93;\n          goto LAB_000a5724;\n        }\n        if (pdVar8 == (double *)0x0) {\n          (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n          goto LAB_000a6cbc;\n        }\n        if (ABS(dStack_260) < *(double *)(iVar18 + 0x13f8)) {\n          dVar61 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else if (ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)) {\n          dVar52 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }\nLAB_000a51b0:\n        dVar42 = (double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18);\n        iVar16 = *(int *)(param_2 + 0x24c) * *(int *)(param_2 + 0x24c);\n        dVar42 = dVar42 * *(double *)(param_2 + 0x1b0) *\n                 *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400);\n        dVar46 = (double)iVar16;\n        if (iVar16 < 0) {\n          dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418);\n        }\n        dVar46 = dVar46 * dVar42 * dVar42;\n        if (*(int *)(param_2 + 0x244) == 3) {\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            iVar16 = iVar29 + -2;\n            dVar50 = pdVar11[1];\n            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);\n            pdVar21 = pdVar6 + iVar16 * 5;\n            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            dVar50 = pdVar21[1];\n            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            goto LAB_000a5220;\n          }\n        }\n        else {\nLAB_000a5220:\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n        }\n        dVar43 = dVar42 * dVar42;\n        dVar53 = dVar43 / (dVar61 * dVar61 + *(double *)(iVar16 + 0x1438));\n        dVar64 = SQRT(dVar53);\n        if (dVar53 < 0.0) {\n          (**(code **)(puVar36 + 0x304770))();\n        }\n        dVar61 = dVar61 * dVar64;\n        pdVar11 = pdVar6 + iVar38 * 5;\n        dVar58 = *pdVar11;\n        dVar62 = pdVar11[1];\n        dVar57 = dVar61 + pdVar6[1];\n        dVar55 = pdVar6[1] - dVar61;\n        dVar53 = dVar64 + *pdVar6;\n        dStack_238 = dVar62 - dVar61;\n        dStack_240 = dVar58 - dVar64;\n        dVar56 = *pdVar6 - dVar64;\n        dVar51 = dVar56;\n        dVar50 = dVar57;\n        dStack_250 = dVar64 + dVar58;\n        dStack_248 = dVar61 + dVar62;\n        if (0.0 < dVar64 * dStack_258 - dVar61 * dStack_260) {\n          dVar51 = dVar53;\n          dVar50 = dVar55;\n          dVar53 = dVar56;\n          dVar55 = dVar57;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar64 + dVar58;\n          dStack_238 = dVar61 + dVar62;\n        }\n        iVar32 = iVar38 + 1;\n        *pdVar8 = dVar51;\n        pdVar8[1] = dVar55;\n        *pdVar7 = dVar53;\n        pdVar7[1] = dVar50;\n        if (iVar32 < iVar29) {\n          iVar20 = *(int *)(puVar36 + 0x303bd8);\n          iVar33 = 1;\n          iVar35 = 1;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78);\n          dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar4;\n          do {\n            dVar44 = pdVar11[6];\n            dVar47 = pdVar11[5];\n            dVar48 = dVar44 - dVar62;\n            dVar54 = dVar47 - dVar58;\n            dVar49 = dVar47 - dVar58;\n            dVar56 = dStack_238;\n            dVar57 = dStack_240;\n            dVar59 = dStack_248;\n            dVar63 = dStack_250;\n            if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar63;\n            dStack_248 = dVar59;\n            dStack_240 = dVar57;\n            dStack_238 = dVar56;\n            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;\n            pdVar11 = pdVar11 + 5;\n            iVar32 = iVar32 + 1;\n            dVar58 = pdVar6[iVar38 * 5];\n            dVar62 = (pdVar6 + iVar38 * 5)[1];\n          } while( true );\n        }\n        iVar38 = 4;\n        iVar32 = 0x10;\n        iVar35 = 0x10;\n        iVar29 = 2;\n        goto LAB_000a5a70;\n      }\n      bVar1 = iVar29 < 2;\n      iStack_188 = 0;\n      bVar2 = false;\n      *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n      if (!bVar1) goto LAB_000a4fe8;\nLAB_000a6124:\n      if (iVar29 != 1) {\n        iVar38 = 1;\n        dStack_258 = 0.0;\n        dStack_260 = 0.0;\n        goto LAB_000a5110;\n      }\n      iVar38 = 1;\n      dStack_258 = 0.0;\n      iVar16 = *(int *)(param_2 + 0x244);\n      dStack_260 = 0.0;\njoined_r0x000a50f8:\n      if (iVar16 == 2) {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n        if (!bVar2) {\n          iVar38 = iVar38 + -1;\n          goto LAB_000a5110;\n        }\n      }\n      else {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n      }\n      puVar13 = (undefined4 *)(*pcVar37)(0x28);\n      pdVar7 = pdVar6;\n      puVar12 = puVar13;\n      do {\n        puVar22 = puVar12;\n        pdVar8 = pdVar7;\n        pdVar7 = pdVar8 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar8 + 4);\n        uVar27 = *(undefined4 *)(pdVar8 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar8 + 0xc);\n        *puVar22 = *(undefined4 *)pdVar8;\n        puVar22[1] = uVar28;\n        puVar22[2] = uVar27;\n        puVar22[3] = uVar26;\n        puVar12 = puVar22 + 4;\n      } while (pdVar7 != pdVar6 + 4);\n      uVar26 = *(undefined4 *)((int)pdVar8 + 0x14);\n      pcVar37 = *(code **)(puVar36 + 0x3042b0);\n      puVar22[4] = *(undefined4 *)pdVar7;\n      puVar22[5] = uVar26;\n      puVar13[4] = 0;\n      (*pcVar37)(pdVar6);\n      goto LAB_000a61cc;\n    }\n    uVar26 = 0x1c57;\nLAB_000a5724:\n    (**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               uVar26,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);\n    uStack_1d0 = 0;\n    goto LAB_000a5774;\n  }\n  uStack_1d0 = 1;\nLAB_000a5774:\n  pcVar37 = *(code **)(puVar36 + 0x3042d8);\nLAB_000a5778:\n  (*pcVar37)(iVar5);\n  if (*(int *)(iVar17 + 0x3350) != 0) {\n    (**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x16b4,*(int *)(puVar36 + 0x303bd8) + 0x3df8);\n  }\n  return uStack_1d0;\nLAB_000a5a58:\n  iVar29 = iVar35 + 1;\n  iVar35 = iVar35 << 4;\n  iVar32 = iVar33 << 4;\n  iVar38 = iVar33 + 1 + iVar29;\nLAB_000a5a70:\n  pcVar37 = *(code **)(puVar36 + 0x3047fc);\n  iVar38 = iStack_188 * 2 + iVar38;\n  *(double *)((int)pdVar7 + iVar35) = dStack_250;\n  ((double *)((int)pdVar7 + iVar35))[1] = dStack_248;\n  *(double *)((int)pdVar8 + iVar32) = dStack_240;\n  ((double *)((int)pdVar8 + iVar32))[1] = dStack_238;\n  puVar13 = (undefined4 *)(*pcVar37)(iVar38 + 2,0x28);\n  if (puVar13 == (undefined4 *)0x0) {\n    (**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               0x1dbc,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n    uStack_1d0 = 0;\n    goto LAB_000a5774;\n  }\n  pdVar31 = pdVar6 + 4;\n  pdVar11 = pdVar6;\n  puVar12 = puVar13;\n  pdVar21 = pdVar7;\n  puVar22 = puVar13;\n  do {\n    do {\n      puVar23 = puVar12;\n      pdVar10 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar10;\n      puVar12 = puVar23 + 4;\n    } while (pdVar10 != pdVar31);\n    pdVar10 = pdVar21 + 2;\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar23[4] = *(undefined4 *)pdVar31;\n    puVar23[5] = uVar26;\n    uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n    uVar27 = *(undefined4 *)(pdVar21 + 1);\n    uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n    *puVar22 = *(undefined4 *)pdVar21;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    pdVar11 = pdVar6;\n    puVar12 = puVar22 + 10;\n    pdVar21 = pdVar10;\n    puVar22 = puVar22 + 10;\n  } while (pdVar7 + iVar29 * 2 != pdVar10);\n  puVar22 = puVar13 + iVar29 * 10;\n  puVar12 = puVar22;\n  if (bVar2) {\n    do {\n      puVar23 = puVar12;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar12 = puVar23 + 4;\n    } while (pdVar21 != pdVar31);\n    iVar29 = iVar29 + 1;\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar23[4] = *(undefined4 *)(pdVar6 + 4);\n    puVar23[5] = uVar26;\n    uVar28 = puVar13[1];\n    uVar27 = puVar13[2];\n    uVar26 = puVar13[3];\n    puVar12 = puVar13 + iVar29 * 10;\n    *puVar22 = *puVar13;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n  }\n  iStack_188 = iVar38 - iStack_188;\n  if (iVar29 < iStack_188) {\n    pdVar11 = pdVar6;\n    puVar12 = puVar13 + iVar29 * 10;\n    pdVar21 = pdVar8 + ((iStack_188 + 0xfffffff) - iVar29) * 2;\n    puVar23 = puVar13 + iVar29 * 10;\n    do {\n      do {\n        puVar25 = puVar12;\n        pdVar10 = pdVar11 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n        uVar27 = *(undefined4 *)(pdVar11 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n        *puVar25 = *(undefined4 *)pdVar11;\n        puVar25[1] = uVar28;\n        puVar25[2] = uVar27;\n        puVar25[3] = uVar26;\n        pdVar11 = pdVar10;\n        puVar12 = puVar25 + 4;\n      } while (pdVar10 != pdVar31);\n      pdVar10 = pdVar21 + -2;\n      uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n      puVar25[4] = *(undefined4 *)pdVar31;\n      puVar25[5] = uVar26;\n      uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n      uVar27 = *(undefined4 *)(pdVar21 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar21;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar6;\n      puVar12 = puVar23 + 10;\n      pdVar21 = pdVar10;\n      puVar23 = puVar23 + 10;\n    } while (pdVar8 + -2 != pdVar10);\n    puVar12 = puVar13 + iStack_188 * 10;\n    iVar29 = iStack_188;\n  }\n  puVar24 = puVar13 + (iVar29 + 1) * 10;\n  pdVar11 = pdVar6;\n  puVar23 = puVar12;\n  puVar25 = puVar24;\n  if (bVar2) {\n    do {\n      puVar25 = puVar23;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar25 = *(undefined4 *)pdVar11;\n      puVar25[1] = uVar28;\n      puVar25[2] = uVar27;\n      puVar25[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar23 = puVar25 + 4;\n    } while (pdVar21 != pdVar31);\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar25[4] = *(undefined4 *)(pdVar6 + 4);\n    puVar25[5] = uVar26;\n    uVar27 = puVar22[0xb];\n    uVar26 = puVar22[0xc];\n    uVar28 = puVar22[0xd];\n    *puVar12 = puVar22[10];\n    puVar12[1] = uVar27;\n    puVar12[2] = uVar26;\n    puVar12[3] = uVar28;\n    puVar25 = puVar13 + (iVar29 + 1) * 10 + 10;\n    pdVar11 = pdVar6;\n    puVar12 = puVar24;\n    puVar23 = puVar24;\n  }\n  do {\n    puVar22 = puVar12;\n    pdVar21 = pdVar11;\n    pdVar11 = pdVar21 + 2;\n    uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n    uVar27 = *(undefined4 *)(pdVar21 + 1);\n    uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n    *puVar22 = *(undefined4 *)pdVar21;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    puVar12 = puVar22 + 4;\n  } while (pdVar11 != pdVar31);\n  uVar26 = *(undefined4 *)((int)pdVar21 + 0x14);\n  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n  puVar22[4] = *(undefined4 *)pdVar11;\n  puVar22[5] = uVar26;\n  uVar28 = puVar13[1];\n  uVar27 = puVar13[2];\n  uVar26 = puVar13[3];\n  *puVar23 = *puVar13;\n  puVar23[1] = uVar28;\n  puVar23[2] = uVar27;\n  puVar23[3] = uVar26;\n  puVar25[5] = 0;\n  puVar13[4] = iVar38 + 1;\n  (*pcVar37)(pdVar7);\n  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n  (**(code **)(puVar36 + 0x3042b0))(pdVar6);\nLAB_000a61cc:\n  uVar4 = FUN_000a2d58(iVar17,iVar5,puVar13,param_4);\n  uStack_1d0 = uStack_1d0 & uVar4;\n  (**(code **)(puVar36 + 0x3042b0))(puVar13);\n  if (uStack_1d0 == 0) goto LAB_000a5774;\n  iVar32 = *(int *)(pdStack_e8 + 2);\n  iVar29 = iVar32 * 0x28;\n  if ((*(int *)(param_2 + 0x244) == 2) && (*(int *)(pdStack_e8 + 4) == 0)) {\n    uVar4 = FUN_000a4c0c(iVar17,param_2,pdStack_e8,param_4);\n    uVar14 = FUN_000a4c0c(iVar17,param_2,pdStack_e8 + iVar32 * 5 + -5,param_4);\n    uStack_1d0 = uVar4 & uVar14 & 1;\n    iVar29 = *(int *)(pdStack_e8 + 2) * 0x28;\n  }\nLAB_000a6620:\n  pdStack_e8 = (double *)((int)pdStack_e8 + iVar29);\n  if (*(int *)((int)pdStack_e8 + 0x14) == 0) goto code_r0x000a6634;\n  goto LAB_000a4e98;\ncode_r0x000a6634:\n  pcVar37 = *(code **)(puVar36 + 0x3042d8);\n  goto LAB_000a5778;\n}" type_identifier (function_declarator "FUN_000a4c0c(undefined4 param_1,int param_2,undefined4 *param_3,undefined4 param_4)" identifier (parameter_list "(undefined4 param_1,int param_2,undefined4 *param_3,undefined4 param_4)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "undefined4 param_4" type_identifier identifier) ))) (compound_statement "{\n  bool bVar1;\n  bool bVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  double *pdVar6;\n  double *pdVar7;\n  double *pdVar8;\n  int iVar9;\n  double *pdVar10;\n  double *pdVar11;\n  undefined4 *puVar12;\n  undefined4 *puVar13;\n  uint uVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  int iVar18;\n  int iVar19;\n  int iVar20;\n  double *pdVar21;\n  undefined4 *puVar22;\n  undefined4 *puVar23;\n  undefined4 *puVar24;\n  undefined4 *puVar25;\n  undefined4 uVar26;\n  undefined4 uVar27;\n  undefined4 uVar28;\n  int iVar29;\n  uint uVar30;\n  double *pdVar31;\n  int iVar32;\n  int iVar33;\n  uint uVar34;\n  int iVar35;\n  undefined *puVar36;\n  code *pcVar37;\n  int iVar38;\n  double dVar39;\n  double dVar40;\n  undefined8 uVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  undefined8 uVar45;\n  double dVar46;\n  double dVar47;\n  double dVar48;\n  double dVar49;\n  double dVar50;\n  double dVar51;\n  double dVar52;\n  double dVar53;\n  double dVar54;\n  double dVar55;\n  double dVar56;\n  double dVar57;\n  double dVar58;\n  double dVar59;\n  undefined8 uVar60;\n  double dVar61;\n  double dVar62;\n  double dVar63;\n  double dVar64;\n  double dStack_2b8;\n  double dStack_2b0;\n  double dStack_2a8;\n  double dStack_2a0;\n  double dStack_288;\n  double dStack_280;\n  double dStack_278;\n  double dStack_270;\n  double dStack_260;\n  double dStack_258;\n  double dStack_250;\n  double dStack_248;\n  double dStack_240;\n  double dStack_238;\n  uint uStack_22c;\n  uint uStack_1d0;\n  int iStack_188;\n  double *pdStack_e8;\n  double local_d8 [2];\n  undefined4 local_c8;\n  double local_b0;\n  double local_88;\n  double local_80;\n  double local_58;\n  double adStack_38 [2];\n  undefined4 local_24;\n  int local_c;\n  \n  puVar36 = PTR___stack_chk_guard_003a9230;\n  pdStack_e8 = local_d8;\n  local_c = *(int *)PTR___stack_chk_guard_003a9230;\n  puVar13 = param_3;\n  pdVar6 = pdStack_e8;\n  pdVar7 = pdStack_e8;\n  do {\n    do {\n      pdVar8 = pdVar6;\n      puVar12 = puVar13;\n      puVar13 = puVar12 + 4;\n      uVar28 = puVar12[1];\n      uVar27 = puVar12[2];\n      uVar26 = puVar12[3];\n      *(undefined4 *)pdVar8 = *puVar12;\n      *(undefined4 *)((int)pdVar8 + 4) = uVar28;\n      *(undefined4 *)(pdVar8 + 1) = uVar27;\n      *(undefined4 *)((int)pdVar8 + 0xc) = uVar26;\n      pdVar6 = pdVar8 + 2;\n    } while (puVar13 != param_3 + 8);\n    pdVar7 = pdVar7 + 5;\n    uVar26 = puVar12[5];\n    *(undefined4 *)(pdVar8 + 2) = *puVar13;\n    *(undefined4 *)((int)pdVar8 + 0x14) = uVar26;\n    puVar13 = param_3;\n    pdVar6 = pdVar7;\n  } while (pdVar7 != adStack_38);\n  dVar39 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x47c8);\n  local_24 = 0;\n  local_c8 = 4;\n  local_b0 = local_b0 + dVar39;\n  local_88 = local_88 + dVar39;\n  local_80 = local_80 + dVar39;\n  local_58 = local_58 + dVar39;\n  uVar4 = FUN_000a2d58();\n  if (local_c == *(int *)puVar36) {\n    return uVar4;\n  }\n  iVar17 = local_c;\n  puVar36 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  if (*(int *)(iVar17 + 0x3350) != 0) {\n    (**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x168f,*(int *)(puVar36 + 0x303bd8) + 0x3dd8);\n  }\n  iVar5 = (**(code **)(puVar36 + 0x3044ec))(0,param_2);\n  puVar13 = (undefined4 *)(iVar5 + 0x48);\n  puVar12 = (undefined4 *)(param_2 + 0xa0);\n  do {\n    puVar23 = puVar12;\n    puVar22 = puVar13;\n    puVar12 = puVar23 + 4;\n    uVar28 = puVar23[1];\n    uVar27 = puVar23[2];\n    uVar26 = puVar23[3];\n    *puVar22 = *puVar23;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    puVar13 = puVar22 + 4;\n  } while (puVar12 != (undefined4 *)(param_2 + 0xf0));\n  uVar26 = puVar23[5];\n  iVar18 = *(int *)(iVar5 + 0x1a8);\n  puVar22[4] = *puVar12;\n  puVar22[5] = uVar26;\n  if (iVar18 != 0) {\n    uVar26 = (**(code **)(puVar36 + 0x30423c))();\n    *(undefined4 *)(iVar5 + 0x1a8) = uVar26;\n  }\n  if (*(int *)(iVar5 + 0x1ac) != 0) {\n    uVar26 = (**(code **)(puVar36 + 0x304b20))(*(int *)(iVar5 + 0x1ac),0,0,1,param_4);\n    *(undefined4 *)(iVar5 + 0x1a8) = uVar26;\n  }\n  iVar18 = *(int *)((int)pdStack_e8 + 0x14);\n  *(undefined4 *)(iVar5 + 0xec) = 0;\n  *(undefined4 *)(iVar5 + 0xe8) = 0;\n  *(undefined4 *)(iVar5 + 0x1b4) = 0;\n  *(undefined4 *)(iVar5 + 0x1b0) = 0;\n  *(undefined4 *)(iVar5 + 0x240) = 2;\n  if (iVar18 != 0) {\n    iVar18 = *(int *)(puVar36 + 0x303bd0);\n    iVar19 = *(int *)(puVar36 + 0x303bd8);\n    uStack_1d0 = 1;\n    dVar39 = *(double *)(iVar18 + 0x13f8);\n    iVar15 = *(int *)(puVar36 + 0x303bd0);\n    dVar40 = *(double *)(iVar15 + 0x1410);\n    uVar41 = *(undefined8 *)(iVar19 + 0x34a0);\nLAB_000a4e98:\n    iVar29 = *(int *)(pdStack_e8 + 2);\n    if (iVar29 == 1) {\n      iVar29 = 0x28;\n      goto LAB_000a6620;\n    }\n    pdVar6 = (double *)(**(code **)(puVar36 + 0x3047fc))(iVar29 + 2,0x28);\n    if (pdVar6 != (double *)0x0) {\n      iVar32 = iVar29 * 0x28;\n      (**(code **)(puVar36 + 0x304648))(pdVar6,pdStack_e8,iVar32);\n      pdVar7 = pdVar6 + iVar29 * 5;\n      if ((ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8) < dVar39) &&\n         (ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]) < dVar39)) {\n        if (*(int *)(param_2 + 0x248) - 1U < 2) {\n          pdVar8 = pdStack_e8 + 5;\n          do {\n            pdVar21 = pdVar7;\n            pdVar11 = pdVar8;\n            pdVar8 = pdVar11 + 2;\n            uVar28 = *(undefined4 *)(pdVar11 + 1);\n            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n            uVar27 = *(undefined4 *)pdVar11;\n            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);\n            *(undefined4 *)(pdVar21 + 1) = uVar28;\n            *(undefined4 *)pdVar21 = uVar27;\n            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;\n            pdVar7 = pdVar21 + 2;\n          } while (pdVar8 != pdStack_e8 + 9);\n          iVar32 = iVar32 + 0x28;\n          uVar26 = *(undefined4 *)pdVar8;\n          pdVar7 = pdVar6 + iVar29 * 5 + 5;\n          *(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14);\n          *(undefined4 *)(pdVar21 + 2) = uVar26;\n          iVar29 = iVar29 + 1;\n        }\n        iStack_188 = 1;\n        bVar2 = true;\n        bVar1 = iVar29 < 2;\n        *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n        if (bVar1) goto LAB_000a6124;\nLAB_000a4fe8:\n        dVar61 = *(double *)(iVar18 + 0x13f8);\n        dStack_260 = pdVar6[5] - *pdVar6;\n        dStack_258 = pdVar6[6] - pdVar6[1];\n        if ((dVar61 <= ABS(dStack_260)) || (dVar61 <= ABS(dStack_258))) {\n          iVar38 = 1;\n        }\n        else {\n          iVar38 = 1;\n          pdVar7 = pdVar6 + 10;\n          do {\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));\n        }\nLAB_000a5110:\n        uVar4 = iVar29 * 2;\n        pdVar7 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        pdVar8 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        if (pdVar7 == (double *)0x0) {\n          if (pdVar8 != (double *)0x0) {\n            (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n          uVar26 = 0x1c93;\n          goto LAB_000a5724;\n        }\n        if (pdVar8 == (double *)0x0) {\n          (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n          goto LAB_000a6cbc;\n        }\n        if (ABS(dStack_260) < *(double *)(iVar18 + 0x13f8)) {\n          dVar61 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else if (ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)) {\n          dVar52 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }\nLAB_000a51b0:\n        dVar42 = (double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18);\n        iVar16 = *(int *)(param_2 + 0x24c) * *(int *)(param_2 + 0x24c);\n        dVar42 = dVar42 * *(double *)(param_2 + 0x1b0) *\n                 *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400);\n        dVar46 = (double)iVar16;\n        if (iVar16 < 0) {\n          dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418);\n        }\n        dVar46 = dVar46 * dVar42 * dVar42;\n        if (*(int *)(param_2 + 0x244) == 3) {\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            iVar16 = iVar29 + -2;\n            dVar50 = pdVar11[1];\n            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);\n            pdVar21 = pdVar6 + iVar16 * 5;\n            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            dVar50 = pdVar21[1];\n            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            goto LAB_000a5220;\n          }\n        }\n        else {\nLAB_000a5220:\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n        }\n        dVar43 = dVar42 * dVar42;\n        dVar53 = dVar43 / (dVar61 * dVar61 + *(double *)(iVar16 + 0x1438));\n        dVar64 = SQRT(dVar53);\n        if (dVar53 < 0.0) {\n          (**(code **)(puVar36 + 0x304770))();\n        }\n        dVar61 = dVar61 * dVar64;\n        pdVar11 = pdVar6 + iVar38 * 5;\n        dVar58 = *pdVar11;\n        dVar62 = pdVar11[1];\n        dVar57 = dVar61 + pdVar6[1];\n        dVar55 = pdVar6[1] - dVar61;\n        dVar53 = dVar64 + *pdVar6;\n        dStack_238 = dVar62 - dVar61;\n        dStack_240 = dVar58 - dVar64;\n        dVar56 = *pdVar6 - dVar64;\n        dVar51 = dVar56;\n        dVar50 = dVar57;\n        dStack_250 = dVar64 + dVar58;\n        dStack_248 = dVar61 + dVar62;\n        if (0.0 < dVar64 * dStack_258 - dVar61 * dStack_260) {\n          dVar51 = dVar53;\n          dVar50 = dVar55;\n          dVar53 = dVar56;\n          dVar55 = dVar57;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar64 + dVar58;\n          dStack_238 = dVar61 + dVar62;\n        }\n        iVar32 = iVar38 + 1;\n        *pdVar8 = dVar51;\n        pdVar8[1] = dVar55;\n        *pdVar7 = dVar53;\n        pdVar7[1] = dVar50;\n        if (iVar32 < iVar29) {\n          iVar20 = *(int *)(puVar36 + 0x303bd8);\n          iVar33 = 1;\n          iVar35 = 1;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78);\n          dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar4;\n          do {\n            dVar44 = pdVar11[6];\n            dVar47 = pdVar11[5];\n            dVar48 = dVar44 - dVar62;\n            dVar54 = dVar47 - dVar58;\n            dVar49 = dVar47 - dVar58;\n            dVar56 = dStack_238;\n            dVar57 = dStack_240;\n            dVar59 = dStack_248;\n            dVar63 = dStack_250;\n            if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar63;\n            dStack_248 = dVar59;\n            dStack_240 = dVar57;\n            dStack_238 = dVar56;\n            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;\n            pdVar11 = pdVar11 + 5;\n            iVar32 = iVar32 + 1;\n            dVar58 = pdVar6[iVar38 * 5];\n            dVar62 = (pdVar6 + iVar38 * 5)[1];\n          } while( true );\n        }\n        iVar38 = 4;\n        iVar32 = 0x10;\n        iVar35 = 0x10;\n        iVar29 = 2;\n        goto LAB_000a5a70;\n      }\n      bVar1 = iVar29 < 2;\n      iStack_188 = 0;\n      bVar2 = false;\n      *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n      if (!bVar1) goto LAB_000a4fe8;\nLAB_000a6124:\n      if (iVar29 != 1) {\n        iVar38 = 1;\n        dStack_258 = 0.0;\n        dStack_260 = 0.0;\n        goto LAB_000a5110;\n      }\n      iVar38 = 1;\n      dStack_258 = 0.0;\n      iVar16 = *(int *)(param_2 + 0x244);\n      dStack_260 = 0.0;\njoined_r0x000a50f8:\n      if (iVar16 == 2) {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n        if (!bVar2) {\n          iVar38 = iVar38 + -1;\n          goto LAB_000a5110;\n        }\n      }\n      else {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n      }\n      puVar13 = (undefined4 *)(*pcVar37)(0x28);\n      pdVar7 = pdVar6;\n      puVar12 = puVar13;\n      do {\n        puVar22 = puVar12;\n        pdVar8 = pdVar7;\n        pdVar7 = pdVar8 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar8 + 4);\n        uVar27 = *(undefined4 *)(pdVar8 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar8 + 0xc);\n        *puVar22 = *(undefined4 *)pdVar8;\n        puVar22[1] = uVar28;\n        puVar22[2] = uVar27;\n        puVar22[3] = uVar26;\n        puVar12 = puVar22 + 4;\n      } while (pdVar7 != pdVar6 + 4);\n      uVar26 = *(undefined4 *)((int)pdVar8 + 0x14);\n      pcVar37 = *(code **)(puVar36 + 0x3042b0);\n      puVar22[4] = *(undefined4 *)pdVar7;\n      puVar22[5] = uVar26;\n      puVar13[4] = 0;\n      (*pcVar37)(pdVar6);\n      goto LAB_000a61cc;\n    }\n    uVar26 = 0x1c57;\nLAB_000a5724:\n    (**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               uVar26,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);\n    uStack_1d0 = 0;\n    goto LAB_000a5774;\n  }\n  uStack_1d0 = 1;\nLAB_000a5774:\n  pcVar37 = *(code **)(puVar36 + 0x3042d8);\nLAB_000a5778:\n  (*pcVar37)(iVar5);\n  if (*(int *)(iVar17 + 0x3350) != 0) {\n    (**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x16b4,*(int *)(puVar36 + 0x303bd8) + 0x3df8);\n  }\n  return uStack_1d0;\nLAB_000a5a58:\n  iVar29 = iVar35 + 1;\n  iVar35 = iVar35 << 4;\n  iVar32 = iVar33 << 4;\n  iVar38 = iVar33 + 1 + iVar29;\nLAB_000a5a70:\n  pcVar37 = *(code **)(puVar36 + 0x3047fc);\n  iVar38 = iStack_188 * 2 + iVar38;\n  *(double *)((int)pdVar7 + iVar35) = dStack_250;\n  ((double *)((int)pdVar7 + iVar35))[1] = dStack_248;\n  *(double *)((int)pdVar8 + iVar32) = dStack_240;\n  ((double *)((int)pdVar8 + iVar32))[1] = dStack_238;\n  puVar13 = (undefined4 *)(*pcVar37)(iVar38 + 2,0x28);\n  if (puVar13 == (undefined4 *)0x0) {\n    (**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               0x1dbc,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n    uStack_1d0 = 0;\n    goto LAB_000a5774;\n  }\n  pdVar31 = pdVar6 + 4;\n  pdVar11 = pdVar6;\n  puVar12 = puVar13;\n  pdVar21 = pdVar7;\n  puVar22 = puVar13;\n  do {\n    do {\n      puVar23 = puVar12;\n      pdVar10 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar10;\n      puVar12 = puVar23 + 4;\n    } while (pdVar10 != pdVar31);\n    pdVar10 = pdVar21 + 2;\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar23[4] = *(undefined4 *)pdVar31;\n    puVar23[5] = uVar26;\n    uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n    uVar27 = *(undefined4 *)(pdVar21 + 1);\n    uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n    *puVar22 = *(undefined4 *)pdVar21;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    pdVar11 = pdVar6;\n    puVar12 = puVar22 + 10;\n    pdVar21 = pdVar10;\n    puVar22 = puVar22 + 10;\n  } while (pdVar7 + iVar29 * 2 != pdVar10);\n  puVar22 = puVar13 + iVar29 * 10;\n  puVar12 = puVar22;\n  if (bVar2) {\n    do {\n      puVar23 = puVar12;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar12 = puVar23 + 4;\n    } while (pdVar21 != pdVar31);\n    iVar29 = iVar29 + 1;\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar23[4] = *(undefined4 *)(pdVar6 + 4);\n    puVar23[5] = uVar26;\n    uVar28 = puVar13[1];\n    uVar27 = puVar13[2];\n    uVar26 = puVar13[3];\n    puVar12 = puVar13 + iVar29 * 10;\n    *puVar22 = *puVar13;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n  }\n  iStack_188 = iVar38 - iStack_188;\n  if (iVar29 < iStack_188) {\n    pdVar11 = pdVar6;\n    puVar12 = puVar13 + iVar29 * 10;\n    pdVar21 = pdVar8 + ((iStack_188 + 0xfffffff) - iVar29) * 2;\n    puVar23 = puVar13 + iVar29 * 10;\n    do {\n      do {\n        puVar25 = puVar12;\n        pdVar10 = pdVar11 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n        uVar27 = *(undefined4 *)(pdVar11 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n        *puVar25 = *(undefined4 *)pdVar11;\n        puVar25[1] = uVar28;\n        puVar25[2] = uVar27;\n        puVar25[3] = uVar26;\n        pdVar11 = pdVar10;\n        puVar12 = puVar25 + 4;\n      } while (pdVar10 != pdVar31);\n      pdVar10 = pdVar21 + -2;\n      uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n      puVar25[4] = *(undefined4 *)pdVar31;\n      puVar25[5] = uVar26;\n      uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n      uVar27 = *(undefined4 *)(pdVar21 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar21;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar6;\n      puVar12 = puVar23 + 10;\n      pdVar21 = pdVar10;\n      puVar23 = puVar23 + 10;\n    } while (pdVar8 + -2 != pdVar10);\n    puVar12 = puVar13 + iStack_188 * 10;\n    iVar29 = iStack_188;\n  }\n  puVar24 = puVar13 + (iVar29 + 1) * 10;\n  pdVar11 = pdVar6;\n  puVar23 = puVar12;\n  puVar25 = puVar24;\n  if (bVar2) {\n    do {\n      puVar25 = puVar23;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar25 = *(undefined4 *)pdVar11;\n      puVar25[1] = uVar28;\n      puVar25[2] = uVar27;\n      puVar25[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar23 = puVar25 + 4;\n    } while (pdVar21 != pdVar31);\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar25[4] = *(undefined4 *)(pdVar6 + 4);\n    puVar25[5] = uVar26;\n    uVar27 = puVar22[0xb];\n    uVar26 = puVar22[0xc];\n    uVar28 = puVar22[0xd];\n    *puVar12 = puVar22[10];\n    puVar12[1] = uVar27;\n    puVar12[2] = uVar26;\n    puVar12[3] = uVar28;\n    puVar25 = puVar13 + (iVar29 + 1) * 10 + 10;\n    pdVar11 = pdVar6;\n    puVar12 = puVar24;\n    puVar23 = puVar24;\n  }\n  do {\n    puVar22 = puVar12;\n    pdVar21 = pdVar11;\n    pdVar11 = pdVar21 + 2;\n    uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n    uVar27 = *(undefined4 *)(pdVar21 + 1);\n    uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n    *puVar22 = *(undefined4 *)pdVar21;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    puVar12 = puVar22 + 4;\n  } while (pdVar11 != pdVar31);\n  uVar26 = *(undefined4 *)((int)pdVar21 + 0x14);\n  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n  puVar22[4] = *(undefined4 *)pdVar11;\n  puVar22[5] = uVar26;\n  uVar28 = puVar13[1];\n  uVar27 = puVar13[2];\n  uVar26 = puVar13[3];\n  *puVar23 = *puVar13;\n  puVar23[1] = uVar28;\n  puVar23[2] = uVar27;\n  puVar23[3] = uVar26;\n  puVar25[5] = 0;\n  puVar13[4] = iVar38 + 1;\n  (*pcVar37)(pdVar7);\n  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n  (**(code **)(puVar36 + 0x3042b0))(pdVar6);\nLAB_000a61cc:\n  uVar4 = FUN_000a2d58(iVar17,iVar5,puVar13,param_4);\n  uStack_1d0 = uStack_1d0 & uVar4;\n  (**(code **)(puVar36 + 0x3042b0))(puVar13);\n  if (uStack_1d0 == 0) goto LAB_000a5774;\n  iVar32 = *(int *)(pdStack_e8 + 2);\n  iVar29 = iVar32 * 0x28;\n  if ((*(int *)(param_2 + 0x244) == 2) && (*(int *)(pdStack_e8 + 4) == 0)) {\n    uVar4 = FUN_000a4c0c(iVar17,param_2,pdStack_e8,param_4);\n    uVar14 = FUN_000a4c0c(iVar17,param_2,pdStack_e8 + iVar32 * 5 + -5,param_4);\n    uStack_1d0 = uVar4 & uVar14 & 1;\n    iVar29 = *(int *)(pdStack_e8 + 2) * 0x28;\n  }\nLAB_000a6620:\n  pdStack_e8 = (double *)((int)pdStack_e8 + iVar29);\n  if (*(int *)((int)pdStack_e8 + 0x14) == 0) goto code_r0x000a6634;\n  goto LAB_000a4e98;\ncode_r0x000a6634:\n  pcVar37 = *(code **)(puVar36 + 0x3042d8);\n  goto LAB_000a5778;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "double *pdVar6;" primitive_type (pointer_declarator "*pdVar6" * identifier) ;) (declaration "double *pdVar7;" primitive_type (pointer_declarator "*pdVar7" * identifier) ;) (declaration "double *pdVar8;" primitive_type (pointer_declarator "*pdVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "double *pdVar10;" primitive_type (pointer_declarator "*pdVar10" * identifier) ;) (declaration "double *pdVar11;" primitive_type (pointer_declarator "*pdVar11" * identifier) ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "double *pdVar21;" primitive_type (pointer_declarator "*pdVar21" * identifier) ;) (declaration "undefined4 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "undefined4 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "undefined4 *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "undefined4 *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "undefined4 uVar26;" type_identifier identifier ;) (declaration "undefined4 uVar27;" type_identifier identifier ;) (declaration "undefined4 uVar28;" type_identifier identifier ;) (declaration "int iVar29;" primitive_type identifier ;) (declaration "uint uVar30;" type_identifier identifier ;) (declaration "double *pdVar31;" primitive_type (pointer_declarator "*pdVar31" * identifier) ;) (declaration "int iVar32;" primitive_type identifier ;) (declaration "int iVar33;" primitive_type identifier ;) (declaration "uint uVar34;" type_identifier identifier ;) (declaration "int iVar35;" primitive_type identifier ;) (declaration "undefined *puVar36;" type_identifier (pointer_declarator "*puVar36" * identifier) ;) (declaration "code *pcVar37;" type_identifier (pointer_declarator "*pcVar37" * identifier) ;) (declaration "int iVar38;" primitive_type identifier ;) (declaration "double dVar39;" primitive_type identifier ;) (declaration "double dVar40;" primitive_type identifier ;) (declaration "undefined8 uVar41;" type_identifier identifier ;) (declaration "double dVar42;" primitive_type identifier ;) (declaration "double dVar43;" primitive_type identifier ;) (declaration "double dVar44;" primitive_type identifier ;) (declaration "undefined8 uVar45;" type_identifier identifier ;) (declaration "double dVar46;" primitive_type identifier ;) (declaration "double dVar47;" primitive_type identifier ;) (declaration "double dVar48;" primitive_type identifier ;) (declaration "double dVar49;" primitive_type identifier ;) (declaration "double dVar50;" primitive_type identifier ;) (declaration "double dVar51;" primitive_type identifier ;) (declaration "double dVar52;" primitive_type identifier ;) (declaration "double dVar53;" primitive_type identifier ;) (declaration "double dVar54;" primitive_type identifier ;) (declaration "double dVar55;" primitive_type identifier ;) (declaration "double dVar56;" primitive_type identifier ;) (declaration "double dVar57;" primitive_type identifier ;) (declaration "double dVar58;" primitive_type identifier ;) (declaration "double dVar59;" primitive_type identifier ;) (declaration "undefined8 uVar60;" type_identifier identifier ;) (declaration "double dVar61;" primitive_type identifier ;) (declaration "double dVar62;" primitive_type identifier ;) (declaration "double dVar63;" primitive_type identifier ;) (declaration "double dVar64;" primitive_type identifier ;) (declaration "double dStack_2b8;" primitive_type identifier ;) (declaration "double dStack_2b0;" primitive_type identifier ;) (declaration "double dStack_2a8;" primitive_type identifier ;) (declaration "double dStack_2a0;" primitive_type identifier ;) (declaration "double dStack_288;" primitive_type identifier ;) (declaration "double dStack_280;" primitive_type identifier ;) (declaration "double dStack_278;" primitive_type identifier ;) (declaration "double dStack_270;" primitive_type identifier ;) (declaration "double dStack_260;" primitive_type identifier ;) (declaration "double dStack_258;" primitive_type identifier ;) (declaration "double dStack_250;" primitive_type identifier ;) (declaration "double dStack_248;" primitive_type identifier ;) (declaration "double dStack_240;" primitive_type identifier ;) (declaration "double dStack_238;" primitive_type identifier ;) (declaration "uint uStack_22c;" type_identifier identifier ;) (declaration "uint uStack_1d0;" type_identifier identifier ;) (declaration "int iStack_188;" primitive_type identifier ;) (declaration "double *pdStack_e8;" primitive_type (pointer_declarator "*pdStack_e8" * identifier) ;) (declaration "double local_d8 [2];" primitive_type (array_declarator "local_d8 [2]" identifier [ number_literal ]) ;) (declaration "undefined4 local_c8;" type_identifier identifier ;) (declaration "double local_b0;" primitive_type identifier ;) (declaration "double local_88;" primitive_type identifier ;) (declaration "double local_80;" primitive_type identifier ;) (declaration "double local_58;" primitive_type identifier ;) (declaration "double adStack_38 [2];" primitive_type (array_declarator "adStack_38 [2]" identifier [ number_literal ]) ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "int local_c;" primitive_type identifier ;) (expression_statement "puVar36 = PTR___stack_chk_guard_003a9230;" (assignment_expression "puVar36 = PTR___stack_chk_guard_003a9230" identifier = identifier) ;) (expression_statement "pdStack_e8 = local_d8;" (assignment_expression "pdStack_e8 = local_d8" identifier = identifier) ;) (expression_statement "local_c = *(int *)PTR___stack_chk_guard_003a9230;" (assignment_expression "local_c = *(int *)PTR___stack_chk_guard_003a9230" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_003a9230" * (cast_expression "(int *)PTR___stack_chk_guard_003a9230" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar13 = param_3;" (assignment_expression "puVar13 = param_3" identifier = identifier) ;) (expression_statement "pdVar6 = pdStack_e8;" (assignment_expression "pdVar6 = pdStack_e8" identifier = identifier) ;) (expression_statement "pdVar7 = pdStack_e8;" (assignment_expression "pdVar7 = pdStack_e8" identifier = identifier) ;) (do_statement "do {\n    do {\n      pdVar8 = pdVar6;\n      puVar12 = puVar13;\n      puVar13 = puVar12 + 4;\n      uVar28 = puVar12[1];\n      uVar27 = puVar12[2];\n      uVar26 = puVar12[3];\n      *(undefined4 *)pdVar8 = *puVar12;\n      *(undefined4 *)((int)pdVar8 + 4) = uVar28;\n      *(undefined4 *)(pdVar8 + 1) = uVar27;\n      *(undefined4 *)((int)pdVar8 + 0xc) = uVar26;\n      pdVar6 = pdVar8 + 2;\n    } while (puVar13 != param_3 + 8);\n    pdVar7 = pdVar7 + 5;\n    uVar26 = puVar12[5];\n    *(undefined4 *)(pdVar8 + 2) = *puVar13;\n    *(undefined4 *)((int)pdVar8 + 0x14) = uVar26;\n    puVar13 = param_3;\n    pdVar6 = pdVar7;\n  } while (pdVar7 != adStack_38);" do (compound_statement "{\n    do {\n      pdVar8 = pdVar6;\n      puVar12 = puVar13;\n      puVar13 = puVar12 + 4;\n      uVar28 = puVar12[1];\n      uVar27 = puVar12[2];\n      uVar26 = puVar12[3];\n      *(undefined4 *)pdVar8 = *puVar12;\n      *(undefined4 *)((int)pdVar8 + 4) = uVar28;\n      *(undefined4 *)(pdVar8 + 1) = uVar27;\n      *(undefined4 *)((int)pdVar8 + 0xc) = uVar26;\n      pdVar6 = pdVar8 + 2;\n    } while (puVar13 != param_3 + 8);\n    pdVar7 = pdVar7 + 5;\n    uVar26 = puVar12[5];\n    *(undefined4 *)(pdVar8 + 2) = *puVar13;\n    *(undefined4 *)((int)pdVar8 + 0x14) = uVar26;\n    puVar13 = param_3;\n    pdVar6 = pdVar7;\n  }" { (do_statement "do {\n      pdVar8 = pdVar6;\n      puVar12 = puVar13;\n      puVar13 = puVar12 + 4;\n      uVar28 = puVar12[1];\n      uVar27 = puVar12[2];\n      uVar26 = puVar12[3];\n      *(undefined4 *)pdVar8 = *puVar12;\n      *(undefined4 *)((int)pdVar8 + 4) = uVar28;\n      *(undefined4 *)(pdVar8 + 1) = uVar27;\n      *(undefined4 *)((int)pdVar8 + 0xc) = uVar26;\n      pdVar6 = pdVar8 + 2;\n    } while (puVar13 != param_3 + 8);" do (compound_statement "{\n      pdVar8 = pdVar6;\n      puVar12 = puVar13;\n      puVar13 = puVar12 + 4;\n      uVar28 = puVar12[1];\n      uVar27 = puVar12[2];\n      uVar26 = puVar12[3];\n      *(undefined4 *)pdVar8 = *puVar12;\n      *(undefined4 *)((int)pdVar8 + 4) = uVar28;\n      *(undefined4 *)(pdVar8 + 1) = uVar27;\n      *(undefined4 *)((int)pdVar8 + 0xc) = uVar26;\n      pdVar6 = pdVar8 + 2;\n    }" { (expression_statement "pdVar8 = pdVar6;" (assignment_expression "pdVar8 = pdVar6" identifier = identifier) ;) (expression_statement "puVar12 = puVar13;" (assignment_expression "puVar12 = puVar13" identifier = identifier) ;) (expression_statement "puVar13 = puVar12 + 4;" (assignment_expression "puVar13 = puVar12 + 4" identifier = (binary_expression "puVar12 + 4" identifier + number_literal)) ;) (expression_statement "uVar28 = puVar12[1];" (assignment_expression "uVar28 = puVar12[1]" identifier = (subscript_expression "puVar12[1]" identifier [ number_literal ])) ;) (expression_statement "uVar27 = puVar12[2];" (assignment_expression "uVar27 = puVar12[2]" identifier = (subscript_expression "puVar12[2]" identifier [ number_literal ])) ;) (expression_statement "uVar26 = puVar12[3];" (assignment_expression "uVar26 = puVar12[3]" identifier = (subscript_expression "puVar12[3]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)pdVar8 = *puVar12;" (assignment_expression "*(undefined4 *)pdVar8 = *puVar12" (pointer_expression "*(undefined4 *)pdVar8" * (cast_expression "(undefined4 *)pdVar8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "*(undefined4 *)((int)pdVar8 + 4) = uVar28;" (assignment_expression "*(undefined4 *)((int)pdVar8 + 4) = uVar28" (pointer_expression "*(undefined4 *)((int)pdVar8 + 4)" * (cast_expression "(undefined4 *)((int)pdVar8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar8 + 4)" ( (binary_expression "(int)pdVar8 + 4" (cast_expression "(int)pdVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(pdVar8 + 1) = uVar27;" (assignment_expression "*(undefined4 *)(pdVar8 + 1) = uVar27" (pointer_expression "*(undefined4 *)(pdVar8 + 1)" * (cast_expression "(undefined4 *)(pdVar8 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar8 + 1)" ( (binary_expression "pdVar8 + 1" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pdVar8 + 0xc) = uVar26;" (assignment_expression "*(undefined4 *)((int)pdVar8 + 0xc) = uVar26" (pointer_expression "*(undefined4 *)((int)pdVar8 + 0xc)" * (cast_expression "(undefined4 *)((int)pdVar8 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar8 + 0xc)" ( (binary_expression "(int)pdVar8 + 0xc" (cast_expression "(int)pdVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pdVar6 = pdVar8 + 2;" (assignment_expression "pdVar6 = pdVar8 + 2" identifier = (binary_expression "pdVar8 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar13 != param_3 + 8)" ( (binary_expression "puVar13 != param_3 + 8" identifier != (binary_expression "param_3 + 8" identifier + number_literal)) )) ;) (expression_statement "pdVar7 = pdVar7 + 5;" (assignment_expression "pdVar7 = pdVar7 + 5" identifier = (binary_expression "pdVar7 + 5" identifier + number_literal)) ;) (expression_statement "uVar26 = puVar12[5];" (assignment_expression "uVar26 = puVar12[5]" identifier = (subscript_expression "puVar12[5]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(pdVar8 + 2) = *puVar13;" (assignment_expression "*(undefined4 *)(pdVar8 + 2) = *puVar13" (pointer_expression "*(undefined4 *)(pdVar8 + 2)" * (cast_expression "(undefined4 *)(pdVar8 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar8 + 2)" ( (binary_expression "pdVar8 + 2" identifier + number_literal) )))) = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "*(undefined4 *)((int)pdVar8 + 0x14) = uVar26;" (assignment_expression "*(undefined4 *)((int)pdVar8 + 0x14) = uVar26" (pointer_expression "*(undefined4 *)((int)pdVar8 + 0x14)" * (cast_expression "(undefined4 *)((int)pdVar8 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar8 + 0x14)" ( (binary_expression "(int)pdVar8 + 0x14" (cast_expression "(int)pdVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "puVar13 = param_3;" (assignment_expression "puVar13 = param_3" identifier = identifier) ;) (expression_statement "pdVar6 = pdVar7;" (assignment_expression "pdVar6 = pdVar7" identifier = identifier) ;) }) while (parenthesized_expression "(pdVar7 != adStack_38)" ( (binary_expression "pdVar7 != adStack_38" identifier != identifier) )) ;) (expression_statement "dVar39 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x47c8);" (assignment_expression "dVar39 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x47c8)" identifier = (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x47c8)" * (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x47c8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x47c8)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x47c8" identifier + number_literal) ))))) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "local_c8 = 4;" (assignment_expression "local_c8 = 4" identifier = number_literal) ;) (expression_statement "local_b0 = local_b0 + dVar39;" (assignment_expression "local_b0 = local_b0 + dVar39" identifier = (binary_expression "local_b0 + dVar39" identifier + identifier)) ;) (expression_statement "local_88 = local_88 + dVar39;" (assignment_expression "local_88 = local_88 + dVar39" identifier = (binary_expression "local_88 + dVar39" identifier + identifier)) ;) (expression_statement "local_80 = local_80 + dVar39;" (assignment_expression "local_80 = local_80 + dVar39" identifier = (binary_expression "local_80 + dVar39" identifier + identifier)) ;) (expression_statement "local_58 = local_58 + dVar39;" (assignment_expression "local_58 = local_58 + dVar39" identifier = (binary_expression "local_58 + dVar39" identifier + identifier)) ;) (expression_statement "uVar4 = FUN_000a2d58();" (assignment_expression "uVar4 = FUN_000a2d58()" identifier = (call_expression "FUN_000a2d58()" identifier (argument_list "()" ( )))) ;) (if_statement "if (local_c == *(int *)puVar36) {\n    return uVar4;\n  }" if (parenthesized_expression "(local_c == *(int *)puVar36)" ( (binary_expression "local_c == *(int *)puVar36" identifier == (pointer_expression "*(int *)puVar36" * (cast_expression "(int *)puVar36" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return uVar4;\n  }" { (return_statement "return uVar4;" return identifier ;) })) (expression_statement "iVar17 = local_c;" (assignment_expression "iVar17 = local_c" identifier = identifier) ;) (expression_statement "puVar36 = PTR___stack_chk_fail_003a9064;" (assignment_expression "puVar36 = PTR___stack_chk_fail_003a9064" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_003a9064)();" (call_expression "(*(code *)PTR___stack_chk_fail_003a9064)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_003a9064)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_003a9064" * (cast_expression "(code *)PTR___stack_chk_fail_003a9064" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (if_statement "if (*(int *)(iVar17 + 0x3350) != 0) {\n    (**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x168f,*(int *)(puVar36 + 0x303bd8) + 0x3dd8);\n  }" if (parenthesized_expression "(*(int *)(iVar17 + 0x3350) != 0)" ( (binary_expression "*(int *)(iVar17 + 0x3350) != 0" (pointer_expression "*(int *)(iVar17 + 0x3350)" * (cast_expression "(int *)(iVar17 + 0x3350)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x3350)" ( (binary_expression "iVar17 + 0x3350" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    (**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x168f,*(int *)(puVar36 + 0x303bd8) + 0x3dd8);\n  }" { (expression_statement "(**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x168f,*(int *)(puVar36 + 0x303bd8) + 0x3dd8);" (call_expression "(**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x168f,*(int *)(puVar36 + 0x303bd8) + 0x3dd8)" (parenthesized_expression "(**(code **)(puVar36 + 0x3044d0))" ( (pointer_expression "**(code **)(puVar36 + 0x3044d0)" * (pointer_expression "*(code **)(puVar36 + 0x3044d0)" * (cast_expression "(code **)(puVar36 + 0x3044d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3044d0)" ( (binary_expression "puVar36 + 0x3044d0" identifier + number_literal) ))))) )) (argument_list "(0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x168f,*(int *)(puVar36 + 0x303bd8) + 0x3dd8)" ( number_literal , (binary_expression "*(int *)(puVar36 + 0x303bd8) + 0x38b0" (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar36 + 0x303bd8) + 0x45dc" (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar36 + 0x303bd8) + 0x3dd8" (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) )))) + number_literal) ))) ;) })) (expression_statement "iVar5 = (**(code **)(puVar36 + 0x3044ec))(0,param_2);" (assignment_expression "iVar5 = (**(code **)(puVar36 + 0x3044ec))(0,param_2)" identifier = (call_expression "(**(code **)(puVar36 + 0x3044ec))(0,param_2)" (parenthesized_expression "(**(code **)(puVar36 + 0x3044ec))" ( (pointer_expression "**(code **)(puVar36 + 0x3044ec)" * (pointer_expression "*(code **)(puVar36 + 0x3044ec)" * (cast_expression "(code **)(puVar36 + 0x3044ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3044ec)" ( (binary_expression "puVar36 + 0x3044ec" identifier + number_literal) ))))) )) (argument_list "(0,param_2)" ( number_literal , identifier )))) ;) (expression_statement "puVar13 = (undefined4 *)(iVar5 + 0x48);" (assignment_expression "puVar13 = (undefined4 *)(iVar5 + 0x48)" identifier = (cast_expression "(undefined4 *)(iVar5 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x48)" ( (binary_expression "iVar5 + 0x48" identifier + number_literal) )))) ;) (expression_statement "puVar12 = (undefined4 *)(param_2 + 0xa0);" (assignment_expression "puVar12 = (undefined4 *)(param_2 + 0xa0)" identifier = (cast_expression "(undefined4 *)(param_2 + 0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xa0)" ( (binary_expression "param_2 + 0xa0" identifier + number_literal) )))) ;) (do_statement "do {\n    puVar23 = puVar12;\n    puVar22 = puVar13;\n    puVar12 = puVar23 + 4;\n    uVar28 = puVar23[1];\n    uVar27 = puVar23[2];\n    uVar26 = puVar23[3];\n    *puVar22 = *puVar23;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    puVar13 = puVar22 + 4;\n  } while (puVar12 != (undefined4 *)(param_2 + 0xf0));" do (compound_statement "{\n    puVar23 = puVar12;\n    puVar22 = puVar13;\n    puVar12 = puVar23 + 4;\n    uVar28 = puVar23[1];\n    uVar27 = puVar23[2];\n    uVar26 = puVar23[3];\n    *puVar22 = *puVar23;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    puVar13 = puVar22 + 4;\n  }" { (expression_statement "puVar23 = puVar12;" (assignment_expression "puVar23 = puVar12" identifier = identifier) ;) (expression_statement "puVar22 = puVar13;" (assignment_expression "puVar22 = puVar13" identifier = identifier) ;) (expression_statement "puVar12 = puVar23 + 4;" (assignment_expression "puVar12 = puVar23 + 4" identifier = (binary_expression "puVar23 + 4" identifier + number_literal)) ;) (expression_statement "uVar28 = puVar23[1];" (assignment_expression "uVar28 = puVar23[1]" identifier = (subscript_expression "puVar23[1]" identifier [ number_literal ])) ;) (expression_statement "uVar27 = puVar23[2];" (assignment_expression "uVar27 = puVar23[2]" identifier = (subscript_expression "puVar23[2]" identifier [ number_literal ])) ;) (expression_statement "uVar26 = puVar23[3];" (assignment_expression "uVar26 = puVar23[3]" identifier = (subscript_expression "puVar23[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar22 = *puVar23;" (assignment_expression "*puVar22 = *puVar23" (pointer_expression "*puVar22" * identifier) = (pointer_expression "*puVar23" * identifier)) ;) (expression_statement "puVar22[1] = uVar28;" (assignment_expression "puVar22[1] = uVar28" (subscript_expression "puVar22[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22[2] = uVar27;" (assignment_expression "puVar22[2] = uVar27" (subscript_expression "puVar22[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22[3] = uVar26;" (assignment_expression "puVar22[3] = uVar26" (subscript_expression "puVar22[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13 = puVar22 + 4;" (assignment_expression "puVar13 = puVar22 + 4" identifier = (binary_expression "puVar22 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar12 != (undefined4 *)(param_2 + 0xf0))" ( (binary_expression "puVar12 != (undefined4 *)(param_2 + 0xf0)" identifier != (cast_expression "(undefined4 *)(param_2 + 0xf0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xf0)" ( (binary_expression "param_2 + 0xf0" identifier + number_literal) )))) )) ;) (expression_statement "uVar26 = puVar23[5];" (assignment_expression "uVar26 = puVar23[5]" identifier = (subscript_expression "puVar23[5]" identifier [ number_literal ])) ;) (expression_statement "iVar18 = *(int *)(iVar5 + 0x1a8);" (assignment_expression "iVar18 = *(int *)(iVar5 + 0x1a8)" identifier = (pointer_expression "*(int *)(iVar5 + 0x1a8)" * (cast_expression "(int *)(iVar5 + 0x1a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1a8)" ( (binary_expression "iVar5 + 0x1a8" identifier + number_literal) ))))) ;) (expression_statement "puVar22[4] = *puVar12;" (assignment_expression "puVar22[4] = *puVar12" (subscript_expression "puVar22[4]" identifier [ number_literal ]) = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "puVar22[5] = uVar26;" (assignment_expression "puVar22[5] = uVar26" (subscript_expression "puVar22[5]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar18 != 0) {\n    uVar26 = (**(code **)(puVar36 + 0x30423c))();\n    *(undefined4 *)(iVar5 + 0x1a8) = uVar26;\n  }" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar26 = (**(code **)(puVar36 + 0x30423c))();\n    *(undefined4 *)(iVar5 + 0x1a8) = uVar26;\n  }" { (expression_statement "uVar26 = (**(code **)(puVar36 + 0x30423c))();" (assignment_expression "uVar26 = (**(code **)(puVar36 + 0x30423c))()" identifier = (call_expression "(**(code **)(puVar36 + 0x30423c))()" (parenthesized_expression "(**(code **)(puVar36 + 0x30423c))" ( (pointer_expression "**(code **)(puVar36 + 0x30423c)" * (pointer_expression "*(code **)(puVar36 + 0x30423c)" * (cast_expression "(code **)(puVar36 + 0x30423c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x30423c)" ( (binary_expression "puVar36 + 0x30423c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x1a8) = uVar26;" (assignment_expression "*(undefined4 *)(iVar5 + 0x1a8) = uVar26" (pointer_expression "*(undefined4 *)(iVar5 + 0x1a8)" * (cast_expression "(undefined4 *)(iVar5 + 0x1a8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1a8)" ( (binary_expression "iVar5 + 0x1a8" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if (*(int *)(iVar5 + 0x1ac) != 0) {\n    uVar26 = (**(code **)(puVar36 + 0x304b20))(*(int *)(iVar5 + 0x1ac),0,0,1,param_4);\n    *(undefined4 *)(iVar5 + 0x1a8) = uVar26;\n  }" if (parenthesized_expression "(*(int *)(iVar5 + 0x1ac) != 0)" ( (binary_expression "*(int *)(iVar5 + 0x1ac) != 0" (pointer_expression "*(int *)(iVar5 + 0x1ac)" * (cast_expression "(int *)(iVar5 + 0x1ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1ac)" ( (binary_expression "iVar5 + 0x1ac" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    uVar26 = (**(code **)(puVar36 + 0x304b20))(*(int *)(iVar5 + 0x1ac),0,0,1,param_4);\n    *(undefined4 *)(iVar5 + 0x1a8) = uVar26;\n  }" { (expression_statement "uVar26 = (**(code **)(puVar36 + 0x304b20))(*(int *)(iVar5 + 0x1ac),0,0,1,param_4);" (assignment_expression "uVar26 = (**(code **)(puVar36 + 0x304b20))(*(int *)(iVar5 + 0x1ac),0,0,1,param_4)" identifier = (call_expression "(**(code **)(puVar36 + 0x304b20))(*(int *)(iVar5 + 0x1ac),0,0,1,param_4)" (parenthesized_expression "(**(code **)(puVar36 + 0x304b20))" ( (pointer_expression "**(code **)(puVar36 + 0x304b20)" * (pointer_expression "*(code **)(puVar36 + 0x304b20)" * (cast_expression "(code **)(puVar36 + 0x304b20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304b20)" ( (binary_expression "puVar36 + 0x304b20" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar5 + 0x1ac),0,0,1,param_4)" ( (pointer_expression "*(int *)(iVar5 + 0x1ac)" * (cast_expression "(int *)(iVar5 + 0x1ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1ac)" ( (binary_expression "iVar5 + 0x1ac" identifier + number_literal) )))) , number_literal , number_literal , number_literal , identifier )))) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x1a8) = uVar26;" (assignment_expression "*(undefined4 *)(iVar5 + 0x1a8) = uVar26" (pointer_expression "*(undefined4 *)(iVar5 + 0x1a8)" * (cast_expression "(undefined4 *)(iVar5 + 0x1a8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1a8)" ( (binary_expression "iVar5 + 0x1a8" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar18 = *(int *)((int)pdStack_e8 + 0x14);" (assignment_expression "iVar18 = *(int *)((int)pdStack_e8 + 0x14)" identifier = (pointer_expression "*(int *)((int)pdStack_e8 + 0x14)" * (cast_expression "(int *)((int)pdStack_e8 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdStack_e8 + 0x14)" ( (binary_expression "(int)pdStack_e8 + 0x14" (cast_expression "(int)pdStack_e8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar5 + 0xec) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0xec) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0xec)" * (cast_expression "(undefined4 *)(iVar5 + 0xec)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xec)" ( (binary_expression "iVar5 + 0xec" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0xe8) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0xe8) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0xe8)" * (cast_expression "(undefined4 *)(iVar5 + 0xe8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xe8)" ( (binary_expression "iVar5 + 0xe8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x1b4) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x1b4) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x1b4)" * (cast_expression "(undefined4 *)(iVar5 + 0x1b4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1b4)" ( (binary_expression "iVar5 + 0x1b4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x1b0) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x1b0) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x1b0)" * (cast_expression "(undefined4 *)(iVar5 + 0x1b0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1b0)" ( (binary_expression "iVar5 + 0x1b0" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x240) = 2;" (assignment_expression "*(undefined4 *)(iVar5 + 0x240) = 2" (pointer_expression "*(undefined4 *)(iVar5 + 0x240)" * (cast_expression "(undefined4 *)(iVar5 + 0x240)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x240)" ( (binary_expression "iVar5 + 0x240" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (iVar18 != 0) {\n    iVar18 = *(int *)(puVar36 + 0x303bd0);\n    iVar19 = *(int *)(puVar36 + 0x303bd8);\n    uStack_1d0 = 1;\n    dVar39 = *(double *)(iVar18 + 0x13f8);\n    iVar15 = *(int *)(puVar36 + 0x303bd0);\n    dVar40 = *(double *)(iVar15 + 0x1410);\n    uVar41 = *(undefined8 *)(iVar19 + 0x34a0);\nLAB_000a4e98:\n    iVar29 = *(int *)(pdStack_e8 + 2);\n    if (iVar29 == 1) {\n      iVar29 = 0x28;\n      goto LAB_000a6620;\n    }\n    pdVar6 = (double *)(**(code **)(puVar36 + 0x3047fc))(iVar29 + 2,0x28);\n    if (pdVar6 != (double *)0x0) {\n      iVar32 = iVar29 * 0x28;\n      (**(code **)(puVar36 + 0x304648))(pdVar6,pdStack_e8,iVar32);\n      pdVar7 = pdVar6 + iVar29 * 5;\n      if ((ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8) < dVar39) &&\n         (ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]) < dVar39)) {\n        if (*(int *)(param_2 + 0x248) - 1U < 2) {\n          pdVar8 = pdStack_e8 + 5;\n          do {\n            pdVar21 = pdVar7;\n            pdVar11 = pdVar8;\n            pdVar8 = pdVar11 + 2;\n            uVar28 = *(undefined4 *)(pdVar11 + 1);\n            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n            uVar27 = *(undefined4 *)pdVar11;\n            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);\n            *(undefined4 *)(pdVar21 + 1) = uVar28;\n            *(undefined4 *)pdVar21 = uVar27;\n            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;\n            pdVar7 = pdVar21 + 2;\n          } while (pdVar8 != pdStack_e8 + 9);\n          iVar32 = iVar32 + 0x28;\n          uVar26 = *(undefined4 *)pdVar8;\n          pdVar7 = pdVar6 + iVar29 * 5 + 5;\n          *(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14);\n          *(undefined4 *)(pdVar21 + 2) = uVar26;\n          iVar29 = iVar29 + 1;\n        }\n        iStack_188 = 1;\n        bVar2 = true;\n        bVar1 = iVar29 < 2;\n        *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n        if (bVar1) goto LAB_000a6124;\nLAB_000a4fe8:\n        dVar61 = *(double *)(iVar18 + 0x13f8);\n        dStack_260 = pdVar6[5] - *pdVar6;\n        dStack_258 = pdVar6[6] - pdVar6[1];\n        if ((dVar61 <= ABS(dStack_260)) || (dVar61 <= ABS(dStack_258))) {\n          iVar38 = 1;\n        }\n        else {\n          iVar38 = 1;\n          pdVar7 = pdVar6 + 10;\n          do {\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));\n        }\nLAB_000a5110:\n        uVar4 = iVar29 * 2;\n        pdVar7 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        pdVar8 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        if (pdVar7 == (double *)0x0) {\n          if (pdVar8 != (double *)0x0) {\n            (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n          uVar26 = 0x1c93;\n          goto LAB_000a5724;\n        }\n        if (pdVar8 == (double *)0x0) {\n          (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n          goto LAB_000a6cbc;\n        }\n        if (ABS(dStack_260) < *(double *)(iVar18 + 0x13f8)) {\n          dVar61 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else if (ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)) {\n          dVar52 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }\nLAB_000a51b0:\n        dVar42 = (double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18);\n        iVar16 = *(int *)(param_2 + 0x24c) * *(int *)(param_2 + 0x24c);\n        dVar42 = dVar42 * *(double *)(param_2 + 0x1b0) *\n                 *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400);\n        dVar46 = (double)iVar16;\n        if (iVar16 < 0) {\n          dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418);\n        }\n        dVar46 = dVar46 * dVar42 * dVar42;\n        if (*(int *)(param_2 + 0x244) == 3) {\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            iVar16 = iVar29 + -2;\n            dVar50 = pdVar11[1];\n            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);\n            pdVar21 = pdVar6 + iVar16 * 5;\n            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            dVar50 = pdVar21[1];\n            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            goto LAB_000a5220;\n          }\n        }\n        else {\nLAB_000a5220:\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n        }\n        dVar43 = dVar42 * dVar42;\n        dVar53 = dVar43 / (dVar61 * dVar61 + *(double *)(iVar16 + 0x1438));\n        dVar64 = SQRT(dVar53);\n        if (dVar53 < 0.0) {\n          (**(code **)(puVar36 + 0x304770))();\n        }\n        dVar61 = dVar61 * dVar64;\n        pdVar11 = pdVar6 + iVar38 * 5;\n        dVar58 = *pdVar11;\n        dVar62 = pdVar11[1];\n        dVar57 = dVar61 + pdVar6[1];\n        dVar55 = pdVar6[1] - dVar61;\n        dVar53 = dVar64 + *pdVar6;\n        dStack_238 = dVar62 - dVar61;\n        dStack_240 = dVar58 - dVar64;\n        dVar56 = *pdVar6 - dVar64;\n        dVar51 = dVar56;\n        dVar50 = dVar57;\n        dStack_250 = dVar64 + dVar58;\n        dStack_248 = dVar61 + dVar62;\n        if (0.0 < dVar64 * dStack_258 - dVar61 * dStack_260) {\n          dVar51 = dVar53;\n          dVar50 = dVar55;\n          dVar53 = dVar56;\n          dVar55 = dVar57;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar64 + dVar58;\n          dStack_238 = dVar61 + dVar62;\n        }\n        iVar32 = iVar38 + 1;\n        *pdVar8 = dVar51;\n        pdVar8[1] = dVar55;\n        *pdVar7 = dVar53;\n        pdVar7[1] = dVar50;\n        if (iVar32 < iVar29) {\n          iVar20 = *(int *)(puVar36 + 0x303bd8);\n          iVar33 = 1;\n          iVar35 = 1;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78);\n          dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar4;\n          do {\n            dVar44 = pdVar11[6];\n            dVar47 = pdVar11[5];\n            dVar48 = dVar44 - dVar62;\n            dVar54 = dVar47 - dVar58;\n            dVar49 = dVar47 - dVar58;\n            dVar56 = dStack_238;\n            dVar57 = dStack_240;\n            dVar59 = dStack_248;\n            dVar63 = dStack_250;\n            if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar63;\n            dStack_248 = dVar59;\n            dStack_240 = dVar57;\n            dStack_238 = dVar56;\n            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;\n            pdVar11 = pdVar11 + 5;\n            iVar32 = iVar32 + 1;\n            dVar58 = pdVar6[iVar38 * 5];\n            dVar62 = (pdVar6 + iVar38 * 5)[1];\n          } while( true );\n        }\n        iVar38 = 4;\n        iVar32 = 0x10;\n        iVar35 = 0x10;\n        iVar29 = 2;\n        goto LAB_000a5a70;\n      }\n      bVar1 = iVar29 < 2;\n      iStack_188 = 0;\n      bVar2 = false;\n      *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n      if (!bVar1) goto LAB_000a4fe8;\nLAB_000a6124:\n      if (iVar29 != 1) {\n        iVar38 = 1;\n        dStack_258 = 0.0;\n        dStack_260 = 0.0;\n        goto LAB_000a5110;\n      }\n      iVar38 = 1;\n      dStack_258 = 0.0;\n      iVar16 = *(int *)(param_2 + 0x244);\n      dStack_260 = 0.0;\njoined_r0x000a50f8:\n      if (iVar16 == 2) {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n        if (!bVar2) {\n          iVar38 = iVar38 + -1;\n          goto LAB_000a5110;\n        }\n      }\n      else {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n      }\n      puVar13 = (undefined4 *)(*pcVar37)(0x28);\n      pdVar7 = pdVar6;\n      puVar12 = puVar13;\n      do {\n        puVar22 = puVar12;\n        pdVar8 = pdVar7;\n        pdVar7 = pdVar8 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar8 + 4);\n        uVar27 = *(undefined4 *)(pdVar8 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar8 + 0xc);\n        *puVar22 = *(undefined4 *)pdVar8;\n        puVar22[1] = uVar28;\n        puVar22[2] = uVar27;\n        puVar22[3] = uVar26;\n        puVar12 = puVar22 + 4;\n      } while (pdVar7 != pdVar6 + 4);\n      uVar26 = *(undefined4 *)((int)pdVar8 + 0x14);\n      pcVar37 = *(code **)(puVar36 + 0x3042b0);\n      puVar22[4] = *(undefined4 *)pdVar7;\n      puVar22[5] = uVar26;\n      puVar13[4] = 0;\n      (*pcVar37)(pdVar6);\n      goto LAB_000a61cc;\n    }\n    uVar26 = 0x1c57;\nLAB_000a5724:\n    (**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               uVar26,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);\n    uStack_1d0 = 0;\n    goto LAB_000a5774;\n  }" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar18 = *(int *)(puVar36 + 0x303bd0);\n    iVar19 = *(int *)(puVar36 + 0x303bd8);\n    uStack_1d0 = 1;\n    dVar39 = *(double *)(iVar18 + 0x13f8);\n    iVar15 = *(int *)(puVar36 + 0x303bd0);\n    dVar40 = *(double *)(iVar15 + 0x1410);\n    uVar41 = *(undefined8 *)(iVar19 + 0x34a0);\nLAB_000a4e98:\n    iVar29 = *(int *)(pdStack_e8 + 2);\n    if (iVar29 == 1) {\n      iVar29 = 0x28;\n      goto LAB_000a6620;\n    }\n    pdVar6 = (double *)(**(code **)(puVar36 + 0x3047fc))(iVar29 + 2,0x28);\n    if (pdVar6 != (double *)0x0) {\n      iVar32 = iVar29 * 0x28;\n      (**(code **)(puVar36 + 0x304648))(pdVar6,pdStack_e8,iVar32);\n      pdVar7 = pdVar6 + iVar29 * 5;\n      if ((ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8) < dVar39) &&\n         (ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]) < dVar39)) {\n        if (*(int *)(param_2 + 0x248) - 1U < 2) {\n          pdVar8 = pdStack_e8 + 5;\n          do {\n            pdVar21 = pdVar7;\n            pdVar11 = pdVar8;\n            pdVar8 = pdVar11 + 2;\n            uVar28 = *(undefined4 *)(pdVar11 + 1);\n            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n            uVar27 = *(undefined4 *)pdVar11;\n            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);\n            *(undefined4 *)(pdVar21 + 1) = uVar28;\n            *(undefined4 *)pdVar21 = uVar27;\n            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;\n            pdVar7 = pdVar21 + 2;\n          } while (pdVar8 != pdStack_e8 + 9);\n          iVar32 = iVar32 + 0x28;\n          uVar26 = *(undefined4 *)pdVar8;\n          pdVar7 = pdVar6 + iVar29 * 5 + 5;\n          *(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14);\n          *(undefined4 *)(pdVar21 + 2) = uVar26;\n          iVar29 = iVar29 + 1;\n        }\n        iStack_188 = 1;\n        bVar2 = true;\n        bVar1 = iVar29 < 2;\n        *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n        if (bVar1) goto LAB_000a6124;\nLAB_000a4fe8:\n        dVar61 = *(double *)(iVar18 + 0x13f8);\n        dStack_260 = pdVar6[5] - *pdVar6;\n        dStack_258 = pdVar6[6] - pdVar6[1];\n        if ((dVar61 <= ABS(dStack_260)) || (dVar61 <= ABS(dStack_258))) {\n          iVar38 = 1;\n        }\n        else {\n          iVar38 = 1;\n          pdVar7 = pdVar6 + 10;\n          do {\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));\n        }\nLAB_000a5110:\n        uVar4 = iVar29 * 2;\n        pdVar7 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        pdVar8 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        if (pdVar7 == (double *)0x0) {\n          if (pdVar8 != (double *)0x0) {\n            (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n          uVar26 = 0x1c93;\n          goto LAB_000a5724;\n        }\n        if (pdVar8 == (double *)0x0) {\n          (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n          goto LAB_000a6cbc;\n        }\n        if (ABS(dStack_260) < *(double *)(iVar18 + 0x13f8)) {\n          dVar61 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else if (ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)) {\n          dVar52 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }\nLAB_000a51b0:\n        dVar42 = (double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18);\n        iVar16 = *(int *)(param_2 + 0x24c) * *(int *)(param_2 + 0x24c);\n        dVar42 = dVar42 * *(double *)(param_2 + 0x1b0) *\n                 *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400);\n        dVar46 = (double)iVar16;\n        if (iVar16 < 0) {\n          dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418);\n        }\n        dVar46 = dVar46 * dVar42 * dVar42;\n        if (*(int *)(param_2 + 0x244) == 3) {\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            iVar16 = iVar29 + -2;\n            dVar50 = pdVar11[1];\n            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);\n            pdVar21 = pdVar6 + iVar16 * 5;\n            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            dVar50 = pdVar21[1];\n            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            goto LAB_000a5220;\n          }\n        }\n        else {\nLAB_000a5220:\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n        }\n        dVar43 = dVar42 * dVar42;\n        dVar53 = dVar43 / (dVar61 * dVar61 + *(double *)(iVar16 + 0x1438));\n        dVar64 = SQRT(dVar53);\n        if (dVar53 < 0.0) {\n          (**(code **)(puVar36 + 0x304770))();\n        }\n        dVar61 = dVar61 * dVar64;\n        pdVar11 = pdVar6 + iVar38 * 5;\n        dVar58 = *pdVar11;\n        dVar62 = pdVar11[1];\n        dVar57 = dVar61 + pdVar6[1];\n        dVar55 = pdVar6[1] - dVar61;\n        dVar53 = dVar64 + *pdVar6;\n        dStack_238 = dVar62 - dVar61;\n        dStack_240 = dVar58 - dVar64;\n        dVar56 = *pdVar6 - dVar64;\n        dVar51 = dVar56;\n        dVar50 = dVar57;\n        dStack_250 = dVar64 + dVar58;\n        dStack_248 = dVar61 + dVar62;\n        if (0.0 < dVar64 * dStack_258 - dVar61 * dStack_260) {\n          dVar51 = dVar53;\n          dVar50 = dVar55;\n          dVar53 = dVar56;\n          dVar55 = dVar57;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar64 + dVar58;\n          dStack_238 = dVar61 + dVar62;\n        }\n        iVar32 = iVar38 + 1;\n        *pdVar8 = dVar51;\n        pdVar8[1] = dVar55;\n        *pdVar7 = dVar53;\n        pdVar7[1] = dVar50;\n        if (iVar32 < iVar29) {\n          iVar20 = *(int *)(puVar36 + 0x303bd8);\n          iVar33 = 1;\n          iVar35 = 1;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78);\n          dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar4;\n          do {\n            dVar44 = pdVar11[6];\n            dVar47 = pdVar11[5];\n            dVar48 = dVar44 - dVar62;\n            dVar54 = dVar47 - dVar58;\n            dVar49 = dVar47 - dVar58;\n            dVar56 = dStack_238;\n            dVar57 = dStack_240;\n            dVar59 = dStack_248;\n            dVar63 = dStack_250;\n            if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar63;\n            dStack_248 = dVar59;\n            dStack_240 = dVar57;\n            dStack_238 = dVar56;\n            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;\n            pdVar11 = pdVar11 + 5;\n            iVar32 = iVar32 + 1;\n            dVar58 = pdVar6[iVar38 * 5];\n            dVar62 = (pdVar6 + iVar38 * 5)[1];\n          } while( true );\n        }\n        iVar38 = 4;\n        iVar32 = 0x10;\n        iVar35 = 0x10;\n        iVar29 = 2;\n        goto LAB_000a5a70;\n      }\n      bVar1 = iVar29 < 2;\n      iStack_188 = 0;\n      bVar2 = false;\n      *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n      if (!bVar1) goto LAB_000a4fe8;\nLAB_000a6124:\n      if (iVar29 != 1) {\n        iVar38 = 1;\n        dStack_258 = 0.0;\n        dStack_260 = 0.0;\n        goto LAB_000a5110;\n      }\n      iVar38 = 1;\n      dStack_258 = 0.0;\n      iVar16 = *(int *)(param_2 + 0x244);\n      dStack_260 = 0.0;\njoined_r0x000a50f8:\n      if (iVar16 == 2) {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n        if (!bVar2) {\n          iVar38 = iVar38 + -1;\n          goto LAB_000a5110;\n        }\n      }\n      else {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n      }\n      puVar13 = (undefined4 *)(*pcVar37)(0x28);\n      pdVar7 = pdVar6;\n      puVar12 = puVar13;\n      do {\n        puVar22 = puVar12;\n        pdVar8 = pdVar7;\n        pdVar7 = pdVar8 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar8 + 4);\n        uVar27 = *(undefined4 *)(pdVar8 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar8 + 0xc);\n        *puVar22 = *(undefined4 *)pdVar8;\n        puVar22[1] = uVar28;\n        puVar22[2] = uVar27;\n        puVar22[3] = uVar26;\n        puVar12 = puVar22 + 4;\n      } while (pdVar7 != pdVar6 + 4);\n      uVar26 = *(undefined4 *)((int)pdVar8 + 0x14);\n      pcVar37 = *(code **)(puVar36 + 0x3042b0);\n      puVar22[4] = *(undefined4 *)pdVar7;\n      puVar22[5] = uVar26;\n      puVar13[4] = 0;\n      (*pcVar37)(pdVar6);\n      goto LAB_000a61cc;\n    }\n    uVar26 = 0x1c57;\nLAB_000a5724:\n    (**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               uVar26,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);\n    uStack_1d0 = 0;\n    goto LAB_000a5774;\n  }" { (expression_statement "iVar18 = *(int *)(puVar36 + 0x303bd0);" (assignment_expression "iVar18 = *(int *)(puVar36 + 0x303bd0)" identifier = (pointer_expression "*(int *)(puVar36 + 0x303bd0)" * (cast_expression "(int *)(puVar36 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd0)" ( (binary_expression "puVar36 + 0x303bd0" identifier + number_literal) ))))) ;) (expression_statement "iVar19 = *(int *)(puVar36 + 0x303bd8);" (assignment_expression "iVar19 = *(int *)(puVar36 + 0x303bd8)" identifier = (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) ))))) ;) (expression_statement "uStack_1d0 = 1;" (assignment_expression "uStack_1d0 = 1" identifier = number_literal) ;) (expression_statement "dVar39 = *(double *)(iVar18 + 0x13f8);" (assignment_expression "dVar39 = *(double *)(iVar18 + 0x13f8)" identifier = (pointer_expression "*(double *)(iVar18 + 0x13f8)" * (cast_expression "(double *)(iVar18 + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x13f8)" ( (binary_expression "iVar18 + 0x13f8" identifier + number_literal) ))))) ;) (expression_statement "iVar15 = *(int *)(puVar36 + 0x303bd0);" (assignment_expression "iVar15 = *(int *)(puVar36 + 0x303bd0)" identifier = (pointer_expression "*(int *)(puVar36 + 0x303bd0)" * (cast_expression "(int *)(puVar36 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd0)" ( (binary_expression "puVar36 + 0x303bd0" identifier + number_literal) ))))) ;) (expression_statement "dVar40 = *(double *)(iVar15 + 0x1410);" (assignment_expression "dVar40 = *(double *)(iVar15 + 0x1410)" identifier = (pointer_expression "*(double *)(iVar15 + 0x1410)" * (cast_expression "(double *)(iVar15 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x1410)" ( (binary_expression "iVar15 + 0x1410" identifier + number_literal) ))))) ;) (expression_statement "uVar41 = *(undefined8 *)(iVar19 + 0x34a0);" (assignment_expression "uVar41 = *(undefined8 *)(iVar19 + 0x34a0)" identifier = (pointer_expression "*(undefined8 *)(iVar19 + 0x34a0)" * (cast_expression "(undefined8 *)(iVar19 + 0x34a0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x34a0)" ( (binary_expression "iVar19 + 0x34a0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000a4e98:\n    iVar29 = *(int *)(pdStack_e8 + 2);" statement_identifier : (expression_statement "iVar29 = *(int *)(pdStack_e8 + 2);" (assignment_expression "iVar29 = *(int *)(pdStack_e8 + 2)" identifier = (pointer_expression "*(int *)(pdStack_e8 + 2)" * (cast_expression "(int *)(pdStack_e8 + 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdStack_e8 + 2)" ( (binary_expression "pdStack_e8 + 2" identifier + number_literal) ))))) ;)) (if_statement "if (iVar29 == 1) {\n      iVar29 = 0x28;\n      goto LAB_000a6620;\n    }" if (parenthesized_expression "(iVar29 == 1)" ( (binary_expression "iVar29 == 1" identifier == number_literal) )) (compound_statement "{\n      iVar29 = 0x28;\n      goto LAB_000a6620;\n    }" { (expression_statement "iVar29 = 0x28;" (assignment_expression "iVar29 = 0x28" identifier = number_literal) ;) (goto_statement "goto LAB_000a6620;" goto statement_identifier ;) })) (expression_statement "pdVar6 = (double *)(**(code **)(puVar36 + 0x3047fc))(iVar29 + 2,0x28);" (assignment_expression "pdVar6 = (double *)(**(code **)(puVar36 + 0x3047fc))(iVar29 + 2,0x28)" identifier = (cast_expression "(double *)(**(code **)(puVar36 + 0x3047fc))(iVar29 + 2,0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar36 + 0x3047fc))(iVar29 + 2,0x28)" (parenthesized_expression "(**(code **)(puVar36 + 0x3047fc))" ( (pointer_expression "**(code **)(puVar36 + 0x3047fc)" * (pointer_expression "*(code **)(puVar36 + 0x3047fc)" * (cast_expression "(code **)(puVar36 + 0x3047fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3047fc)" ( (binary_expression "puVar36 + 0x3047fc" identifier + number_literal) ))))) )) (argument_list "(iVar29 + 2,0x28)" ( (binary_expression "iVar29 + 2" identifier + number_literal) , number_literal ))))) ;) (if_statement "if (pdVar6 != (double *)0x0) {\n      iVar32 = iVar29 * 0x28;\n      (**(code **)(puVar36 + 0x304648))(pdVar6,pdStack_e8,iVar32);\n      pdVar7 = pdVar6 + iVar29 * 5;\n      if ((ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8) < dVar39) &&\n         (ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]) < dVar39)) {\n        if (*(int *)(param_2 + 0x248) - 1U < 2) {\n          pdVar8 = pdStack_e8 + 5;\n          do {\n            pdVar21 = pdVar7;\n            pdVar11 = pdVar8;\n            pdVar8 = pdVar11 + 2;\n            uVar28 = *(undefined4 *)(pdVar11 + 1);\n            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n            uVar27 = *(undefined4 *)pdVar11;\n            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);\n            *(undefined4 *)(pdVar21 + 1) = uVar28;\n            *(undefined4 *)pdVar21 = uVar27;\n            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;\n            pdVar7 = pdVar21 + 2;\n          } while (pdVar8 != pdStack_e8 + 9);\n          iVar32 = iVar32 + 0x28;\n          uVar26 = *(undefined4 *)pdVar8;\n          pdVar7 = pdVar6 + iVar29 * 5 + 5;\n          *(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14);\n          *(undefined4 *)(pdVar21 + 2) = uVar26;\n          iVar29 = iVar29 + 1;\n        }\n        iStack_188 = 1;\n        bVar2 = true;\n        bVar1 = iVar29 < 2;\n        *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n        if (bVar1) goto LAB_000a6124;\nLAB_000a4fe8:\n        dVar61 = *(double *)(iVar18 + 0x13f8);\n        dStack_260 = pdVar6[5] - *pdVar6;\n        dStack_258 = pdVar6[6] - pdVar6[1];\n        if ((dVar61 <= ABS(dStack_260)) || (dVar61 <= ABS(dStack_258))) {\n          iVar38 = 1;\n        }\n        else {\n          iVar38 = 1;\n          pdVar7 = pdVar6 + 10;\n          do {\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));\n        }\nLAB_000a5110:\n        uVar4 = iVar29 * 2;\n        pdVar7 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        pdVar8 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        if (pdVar7 == (double *)0x0) {\n          if (pdVar8 != (double *)0x0) {\n            (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n          uVar26 = 0x1c93;\n          goto LAB_000a5724;\n        }\n        if (pdVar8 == (double *)0x0) {\n          (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n          goto LAB_000a6cbc;\n        }\n        if (ABS(dStack_260) < *(double *)(iVar18 + 0x13f8)) {\n          dVar61 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else if (ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)) {\n          dVar52 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }\nLAB_000a51b0:\n        dVar42 = (double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18);\n        iVar16 = *(int *)(param_2 + 0x24c) * *(int *)(param_2 + 0x24c);\n        dVar42 = dVar42 * *(double *)(param_2 + 0x1b0) *\n                 *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400);\n        dVar46 = (double)iVar16;\n        if (iVar16 < 0) {\n          dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418);\n        }\n        dVar46 = dVar46 * dVar42 * dVar42;\n        if (*(int *)(param_2 + 0x244) == 3) {\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            iVar16 = iVar29 + -2;\n            dVar50 = pdVar11[1];\n            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);\n            pdVar21 = pdVar6 + iVar16 * 5;\n            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            dVar50 = pdVar21[1];\n            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            goto LAB_000a5220;\n          }\n        }\n        else {\nLAB_000a5220:\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n        }\n        dVar43 = dVar42 * dVar42;\n        dVar53 = dVar43 / (dVar61 * dVar61 + *(double *)(iVar16 + 0x1438));\n        dVar64 = SQRT(dVar53);\n        if (dVar53 < 0.0) {\n          (**(code **)(puVar36 + 0x304770))();\n        }\n        dVar61 = dVar61 * dVar64;\n        pdVar11 = pdVar6 + iVar38 * 5;\n        dVar58 = *pdVar11;\n        dVar62 = pdVar11[1];\n        dVar57 = dVar61 + pdVar6[1];\n        dVar55 = pdVar6[1] - dVar61;\n        dVar53 = dVar64 + *pdVar6;\n        dStack_238 = dVar62 - dVar61;\n        dStack_240 = dVar58 - dVar64;\n        dVar56 = *pdVar6 - dVar64;\n        dVar51 = dVar56;\n        dVar50 = dVar57;\n        dStack_250 = dVar64 + dVar58;\n        dStack_248 = dVar61 + dVar62;\n        if (0.0 < dVar64 * dStack_258 - dVar61 * dStack_260) {\n          dVar51 = dVar53;\n          dVar50 = dVar55;\n          dVar53 = dVar56;\n          dVar55 = dVar57;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar64 + dVar58;\n          dStack_238 = dVar61 + dVar62;\n        }\n        iVar32 = iVar38 + 1;\n        *pdVar8 = dVar51;\n        pdVar8[1] = dVar55;\n        *pdVar7 = dVar53;\n        pdVar7[1] = dVar50;\n        if (iVar32 < iVar29) {\n          iVar20 = *(int *)(puVar36 + 0x303bd8);\n          iVar33 = 1;\n          iVar35 = 1;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78);\n          dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar4;\n          do {\n            dVar44 = pdVar11[6];\n            dVar47 = pdVar11[5];\n            dVar48 = dVar44 - dVar62;\n            dVar54 = dVar47 - dVar58;\n            dVar49 = dVar47 - dVar58;\n            dVar56 = dStack_238;\n            dVar57 = dStack_240;\n            dVar59 = dStack_248;\n            dVar63 = dStack_250;\n            if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar63;\n            dStack_248 = dVar59;\n            dStack_240 = dVar57;\n            dStack_238 = dVar56;\n            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;\n            pdVar11 = pdVar11 + 5;\n            iVar32 = iVar32 + 1;\n            dVar58 = pdVar6[iVar38 * 5];\n            dVar62 = (pdVar6 + iVar38 * 5)[1];\n          } while( true );\n        }\n        iVar38 = 4;\n        iVar32 = 0x10;\n        iVar35 = 0x10;\n        iVar29 = 2;\n        goto LAB_000a5a70;\n      }\n      bVar1 = iVar29 < 2;\n      iStack_188 = 0;\n      bVar2 = false;\n      *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n      if (!bVar1) goto LAB_000a4fe8;\nLAB_000a6124:\n      if (iVar29 != 1) {\n        iVar38 = 1;\n        dStack_258 = 0.0;\n        dStack_260 = 0.0;\n        goto LAB_000a5110;\n      }\n      iVar38 = 1;\n      dStack_258 = 0.0;\n      iVar16 = *(int *)(param_2 + 0x244);\n      dStack_260 = 0.0;\njoined_r0x000a50f8:\n      if (iVar16 == 2) {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n        if (!bVar2) {\n          iVar38 = iVar38 + -1;\n          goto LAB_000a5110;\n        }\n      }\n      else {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n      }\n      puVar13 = (undefined4 *)(*pcVar37)(0x28);\n      pdVar7 = pdVar6;\n      puVar12 = puVar13;\n      do {\n        puVar22 = puVar12;\n        pdVar8 = pdVar7;\n        pdVar7 = pdVar8 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar8 + 4);\n        uVar27 = *(undefined4 *)(pdVar8 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar8 + 0xc);\n        *puVar22 = *(undefined4 *)pdVar8;\n        puVar22[1] = uVar28;\n        puVar22[2] = uVar27;\n        puVar22[3] = uVar26;\n        puVar12 = puVar22 + 4;\n      } while (pdVar7 != pdVar6 + 4);\n      uVar26 = *(undefined4 *)((int)pdVar8 + 0x14);\n      pcVar37 = *(code **)(puVar36 + 0x3042b0);\n      puVar22[4] = *(undefined4 *)pdVar7;\n      puVar22[5] = uVar26;\n      puVar13[4] = 0;\n      (*pcVar37)(pdVar6);\n      goto LAB_000a61cc;\n    }" if (parenthesized_expression "(pdVar6 != (double *)0x0)" ( (binary_expression "pdVar6 != (double *)0x0" identifier != (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar32 = iVar29 * 0x28;\n      (**(code **)(puVar36 + 0x304648))(pdVar6,pdStack_e8,iVar32);\n      pdVar7 = pdVar6 + iVar29 * 5;\n      if ((ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8) < dVar39) &&\n         (ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]) < dVar39)) {\n        if (*(int *)(param_2 + 0x248) - 1U < 2) {\n          pdVar8 = pdStack_e8 + 5;\n          do {\n            pdVar21 = pdVar7;\n            pdVar11 = pdVar8;\n            pdVar8 = pdVar11 + 2;\n            uVar28 = *(undefined4 *)(pdVar11 + 1);\n            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n            uVar27 = *(undefined4 *)pdVar11;\n            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);\n            *(undefined4 *)(pdVar21 + 1) = uVar28;\n            *(undefined4 *)pdVar21 = uVar27;\n            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;\n            pdVar7 = pdVar21 + 2;\n          } while (pdVar8 != pdStack_e8 + 9);\n          iVar32 = iVar32 + 0x28;\n          uVar26 = *(undefined4 *)pdVar8;\n          pdVar7 = pdVar6 + iVar29 * 5 + 5;\n          *(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14);\n          *(undefined4 *)(pdVar21 + 2) = uVar26;\n          iVar29 = iVar29 + 1;\n        }\n        iStack_188 = 1;\n        bVar2 = true;\n        bVar1 = iVar29 < 2;\n        *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n        if (bVar1) goto LAB_000a6124;\nLAB_000a4fe8:\n        dVar61 = *(double *)(iVar18 + 0x13f8);\n        dStack_260 = pdVar6[5] - *pdVar6;\n        dStack_258 = pdVar6[6] - pdVar6[1];\n        if ((dVar61 <= ABS(dStack_260)) || (dVar61 <= ABS(dStack_258))) {\n          iVar38 = 1;\n        }\n        else {\n          iVar38 = 1;\n          pdVar7 = pdVar6 + 10;\n          do {\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));\n        }\nLAB_000a5110:\n        uVar4 = iVar29 * 2;\n        pdVar7 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        pdVar8 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        if (pdVar7 == (double *)0x0) {\n          if (pdVar8 != (double *)0x0) {\n            (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n          uVar26 = 0x1c93;\n          goto LAB_000a5724;\n        }\n        if (pdVar8 == (double *)0x0) {\n          (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n          goto LAB_000a6cbc;\n        }\n        if (ABS(dStack_260) < *(double *)(iVar18 + 0x13f8)) {\n          dVar61 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else if (ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)) {\n          dVar52 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }\nLAB_000a51b0:\n        dVar42 = (double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18);\n        iVar16 = *(int *)(param_2 + 0x24c) * *(int *)(param_2 + 0x24c);\n        dVar42 = dVar42 * *(double *)(param_2 + 0x1b0) *\n                 *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400);\n        dVar46 = (double)iVar16;\n        if (iVar16 < 0) {\n          dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418);\n        }\n        dVar46 = dVar46 * dVar42 * dVar42;\n        if (*(int *)(param_2 + 0x244) == 3) {\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            iVar16 = iVar29 + -2;\n            dVar50 = pdVar11[1];\n            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);\n            pdVar21 = pdVar6 + iVar16 * 5;\n            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            dVar50 = pdVar21[1];\n            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            goto LAB_000a5220;\n          }\n        }\n        else {\nLAB_000a5220:\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n        }\n        dVar43 = dVar42 * dVar42;\n        dVar53 = dVar43 / (dVar61 * dVar61 + *(double *)(iVar16 + 0x1438));\n        dVar64 = SQRT(dVar53);\n        if (dVar53 < 0.0) {\n          (**(code **)(puVar36 + 0x304770))();\n        }\n        dVar61 = dVar61 * dVar64;\n        pdVar11 = pdVar6 + iVar38 * 5;\n        dVar58 = *pdVar11;\n        dVar62 = pdVar11[1];\n        dVar57 = dVar61 + pdVar6[1];\n        dVar55 = pdVar6[1] - dVar61;\n        dVar53 = dVar64 + *pdVar6;\n        dStack_238 = dVar62 - dVar61;\n        dStack_240 = dVar58 - dVar64;\n        dVar56 = *pdVar6 - dVar64;\n        dVar51 = dVar56;\n        dVar50 = dVar57;\n        dStack_250 = dVar64 + dVar58;\n        dStack_248 = dVar61 + dVar62;\n        if (0.0 < dVar64 * dStack_258 - dVar61 * dStack_260) {\n          dVar51 = dVar53;\n          dVar50 = dVar55;\n          dVar53 = dVar56;\n          dVar55 = dVar57;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar64 + dVar58;\n          dStack_238 = dVar61 + dVar62;\n        }\n        iVar32 = iVar38 + 1;\n        *pdVar8 = dVar51;\n        pdVar8[1] = dVar55;\n        *pdVar7 = dVar53;\n        pdVar7[1] = dVar50;\n        if (iVar32 < iVar29) {\n          iVar20 = *(int *)(puVar36 + 0x303bd8);\n          iVar33 = 1;\n          iVar35 = 1;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78);\n          dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar4;\n          do {\n            dVar44 = pdVar11[6];\n            dVar47 = pdVar11[5];\n            dVar48 = dVar44 - dVar62;\n            dVar54 = dVar47 - dVar58;\n            dVar49 = dVar47 - dVar58;\n            dVar56 = dStack_238;\n            dVar57 = dStack_240;\n            dVar59 = dStack_248;\n            dVar63 = dStack_250;\n            if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar63;\n            dStack_248 = dVar59;\n            dStack_240 = dVar57;\n            dStack_238 = dVar56;\n            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;\n            pdVar11 = pdVar11 + 5;\n            iVar32 = iVar32 + 1;\n            dVar58 = pdVar6[iVar38 * 5];\n            dVar62 = (pdVar6 + iVar38 * 5)[1];\n          } while( true );\n        }\n        iVar38 = 4;\n        iVar32 = 0x10;\n        iVar35 = 0x10;\n        iVar29 = 2;\n        goto LAB_000a5a70;\n      }\n      bVar1 = iVar29 < 2;\n      iStack_188 = 0;\n      bVar2 = false;\n      *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n      if (!bVar1) goto LAB_000a4fe8;\nLAB_000a6124:\n      if (iVar29 != 1) {\n        iVar38 = 1;\n        dStack_258 = 0.0;\n        dStack_260 = 0.0;\n        goto LAB_000a5110;\n      }\n      iVar38 = 1;\n      dStack_258 = 0.0;\n      iVar16 = *(int *)(param_2 + 0x244);\n      dStack_260 = 0.0;\njoined_r0x000a50f8:\n      if (iVar16 == 2) {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n        if (!bVar2) {\n          iVar38 = iVar38 + -1;\n          goto LAB_000a5110;\n        }\n      }\n      else {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n      }\n      puVar13 = (undefined4 *)(*pcVar37)(0x28);\n      pdVar7 = pdVar6;\n      puVar12 = puVar13;\n      do {\n        puVar22 = puVar12;\n        pdVar8 = pdVar7;\n        pdVar7 = pdVar8 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar8 + 4);\n        uVar27 = *(undefined4 *)(pdVar8 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar8 + 0xc);\n        *puVar22 = *(undefined4 *)pdVar8;\n        puVar22[1] = uVar28;\n        puVar22[2] = uVar27;\n        puVar22[3] = uVar26;\n        puVar12 = puVar22 + 4;\n      } while (pdVar7 != pdVar6 + 4);\n      uVar26 = *(undefined4 *)((int)pdVar8 + 0x14);\n      pcVar37 = *(code **)(puVar36 + 0x3042b0);\n      puVar22[4] = *(undefined4 *)pdVar7;\n      puVar22[5] = uVar26;\n      puVar13[4] = 0;\n      (*pcVar37)(pdVar6);\n      goto LAB_000a61cc;\n    }" { (expression_statement "iVar32 = iVar29 * 0x28;" (assignment_expression "iVar32 = iVar29 * 0x28" identifier = (binary_expression "iVar29 * 0x28" identifier * number_literal)) ;) (expression_statement "(**(code **)(puVar36 + 0x304648))(pdVar6,pdStack_e8,iVar32);" (call_expression "(**(code **)(puVar36 + 0x304648))(pdVar6,pdStack_e8,iVar32)" (parenthesized_expression "(**(code **)(puVar36 + 0x304648))" ( (pointer_expression "**(code **)(puVar36 + 0x304648)" * (pointer_expression "*(code **)(puVar36 + 0x304648)" * (cast_expression "(code **)(puVar36 + 0x304648)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304648)" ( (binary_expression "puVar36 + 0x304648" identifier + number_literal) ))))) )) (argument_list "(pdVar6,pdStack_e8,iVar32)" ( identifier , identifier , identifier ))) ;) (expression_statement "pdVar7 = pdVar6 + iVar29 * 5;" (assignment_expression "pdVar7 = pdVar6 + iVar29 * 5" identifier = (binary_expression "pdVar6 + iVar29 * 5" identifier + (binary_expression "iVar29 * 5" identifier * number_literal))) ;) (if_statement "if ((ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8) < dVar39) &&\n         (ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]) < dVar39)) {\n        if (*(int *)(param_2 + 0x248) - 1U < 2) {\n          pdVar8 = pdStack_e8 + 5;\n          do {\n            pdVar21 = pdVar7;\n            pdVar11 = pdVar8;\n            pdVar8 = pdVar11 + 2;\n            uVar28 = *(undefined4 *)(pdVar11 + 1);\n            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n            uVar27 = *(undefined4 *)pdVar11;\n            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);\n            *(undefined4 *)(pdVar21 + 1) = uVar28;\n            *(undefined4 *)pdVar21 = uVar27;\n            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;\n            pdVar7 = pdVar21 + 2;\n          } while (pdVar8 != pdStack_e8 + 9);\n          iVar32 = iVar32 + 0x28;\n          uVar26 = *(undefined4 *)pdVar8;\n          pdVar7 = pdVar6 + iVar29 * 5 + 5;\n          *(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14);\n          *(undefined4 *)(pdVar21 + 2) = uVar26;\n          iVar29 = iVar29 + 1;\n        }\n        iStack_188 = 1;\n        bVar2 = true;\n        bVar1 = iVar29 < 2;\n        *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n        if (bVar1) goto LAB_000a6124;\nLAB_000a4fe8:\n        dVar61 = *(double *)(iVar18 + 0x13f8);\n        dStack_260 = pdVar6[5] - *pdVar6;\n        dStack_258 = pdVar6[6] - pdVar6[1];\n        if ((dVar61 <= ABS(dStack_260)) || (dVar61 <= ABS(dStack_258))) {\n          iVar38 = 1;\n        }\n        else {\n          iVar38 = 1;\n          pdVar7 = pdVar6 + 10;\n          do {\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));\n        }\nLAB_000a5110:\n        uVar4 = iVar29 * 2;\n        pdVar7 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        pdVar8 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        if (pdVar7 == (double *)0x0) {\n          if (pdVar8 != (double *)0x0) {\n            (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n          uVar26 = 0x1c93;\n          goto LAB_000a5724;\n        }\n        if (pdVar8 == (double *)0x0) {\n          (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n          goto LAB_000a6cbc;\n        }\n        if (ABS(dStack_260) < *(double *)(iVar18 + 0x13f8)) {\n          dVar61 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else if (ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)) {\n          dVar52 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }\nLAB_000a51b0:\n        dVar42 = (double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18);\n        iVar16 = *(int *)(param_2 + 0x24c) * *(int *)(param_2 + 0x24c);\n        dVar42 = dVar42 * *(double *)(param_2 + 0x1b0) *\n                 *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400);\n        dVar46 = (double)iVar16;\n        if (iVar16 < 0) {\n          dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418);\n        }\n        dVar46 = dVar46 * dVar42 * dVar42;\n        if (*(int *)(param_2 + 0x244) == 3) {\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            iVar16 = iVar29 + -2;\n            dVar50 = pdVar11[1];\n            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);\n            pdVar21 = pdVar6 + iVar16 * 5;\n            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            dVar50 = pdVar21[1];\n            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            goto LAB_000a5220;\n          }\n        }\n        else {\nLAB_000a5220:\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n        }\n        dVar43 = dVar42 * dVar42;\n        dVar53 = dVar43 / (dVar61 * dVar61 + *(double *)(iVar16 + 0x1438));\n        dVar64 = SQRT(dVar53);\n        if (dVar53 < 0.0) {\n          (**(code **)(puVar36 + 0x304770))();\n        }\n        dVar61 = dVar61 * dVar64;\n        pdVar11 = pdVar6 + iVar38 * 5;\n        dVar58 = *pdVar11;\n        dVar62 = pdVar11[1];\n        dVar57 = dVar61 + pdVar6[1];\n        dVar55 = pdVar6[1] - dVar61;\n        dVar53 = dVar64 + *pdVar6;\n        dStack_238 = dVar62 - dVar61;\n        dStack_240 = dVar58 - dVar64;\n        dVar56 = *pdVar6 - dVar64;\n        dVar51 = dVar56;\n        dVar50 = dVar57;\n        dStack_250 = dVar64 + dVar58;\n        dStack_248 = dVar61 + dVar62;\n        if (0.0 < dVar64 * dStack_258 - dVar61 * dStack_260) {\n          dVar51 = dVar53;\n          dVar50 = dVar55;\n          dVar53 = dVar56;\n          dVar55 = dVar57;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar64 + dVar58;\n          dStack_238 = dVar61 + dVar62;\n        }\n        iVar32 = iVar38 + 1;\n        *pdVar8 = dVar51;\n        pdVar8[1] = dVar55;\n        *pdVar7 = dVar53;\n        pdVar7[1] = dVar50;\n        if (iVar32 < iVar29) {\n          iVar20 = *(int *)(puVar36 + 0x303bd8);\n          iVar33 = 1;\n          iVar35 = 1;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78);\n          dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar4;\n          do {\n            dVar44 = pdVar11[6];\n            dVar47 = pdVar11[5];\n            dVar48 = dVar44 - dVar62;\n            dVar54 = dVar47 - dVar58;\n            dVar49 = dVar47 - dVar58;\n            dVar56 = dStack_238;\n            dVar57 = dStack_240;\n            dVar59 = dStack_248;\n            dVar63 = dStack_250;\n            if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar63;\n            dStack_248 = dVar59;\n            dStack_240 = dVar57;\n            dStack_238 = dVar56;\n            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;\n            pdVar11 = pdVar11 + 5;\n            iVar32 = iVar32 + 1;\n            dVar58 = pdVar6[iVar38 * 5];\n            dVar62 = (pdVar6 + iVar38 * 5)[1];\n          } while( true );\n        }\n        iVar38 = 4;\n        iVar32 = 0x10;\n        iVar35 = 0x10;\n        iVar29 = 2;\n        goto LAB_000a5a70;\n      }" if (parenthesized_expression "((ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8) < dVar39) &&\n         (ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]) < dVar39))" ( (binary_expression "(ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8) < dVar39) &&\n         (ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]) < dVar39)" (parenthesized_expression "(ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8) < dVar39)" ( (binary_expression "ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8) < dVar39" (call_expression "ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8)" identifier (argument_list "(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8)" ( (binary_expression "pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8" (subscript_expression "pdStack_e8[iVar29 * 5 + -5]" identifier [ (binary_expression "iVar29 * 5 + -5" (binary_expression "iVar29 * 5" identifier * number_literal) + number_literal) ]) - (pointer_expression "*pdStack_e8" * identifier)) ))) < identifier) )) && (parenthesized_expression "(ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]) < dVar39)" ( (binary_expression "ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]) < dVar39" (call_expression "ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1])" identifier (argument_list "((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1])" ( (binary_expression "(pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]" (subscript_expression "(pdStack_e8 + iVar29 * 5 + -5)[1]" (parenthesized_expression "(pdStack_e8 + iVar29 * 5 + -5)" ( (binary_expression "pdStack_e8 + iVar29 * 5 + -5" (binary_expression "pdStack_e8 + iVar29 * 5" identifier + (binary_expression "iVar29 * 5" identifier * number_literal)) + number_literal) )) [ number_literal ]) - (subscript_expression "pdStack_e8[1]" identifier [ number_literal ])) ))) < identifier) ))) )) (compound_statement "{\n        if (*(int *)(param_2 + 0x248) - 1U < 2) {\n          pdVar8 = pdStack_e8 + 5;\n          do {\n            pdVar21 = pdVar7;\n            pdVar11 = pdVar8;\n            pdVar8 = pdVar11 + 2;\n            uVar28 = *(undefined4 *)(pdVar11 + 1);\n            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n            uVar27 = *(undefined4 *)pdVar11;\n            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);\n            *(undefined4 *)(pdVar21 + 1) = uVar28;\n            *(undefined4 *)pdVar21 = uVar27;\n            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;\n            pdVar7 = pdVar21 + 2;\n          } while (pdVar8 != pdStack_e8 + 9);\n          iVar32 = iVar32 + 0x28;\n          uVar26 = *(undefined4 *)pdVar8;\n          pdVar7 = pdVar6 + iVar29 * 5 + 5;\n          *(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14);\n          *(undefined4 *)(pdVar21 + 2) = uVar26;\n          iVar29 = iVar29 + 1;\n        }\n        iStack_188 = 1;\n        bVar2 = true;\n        bVar1 = iVar29 < 2;\n        *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n        if (bVar1) goto LAB_000a6124;\nLAB_000a4fe8:\n        dVar61 = *(double *)(iVar18 + 0x13f8);\n        dStack_260 = pdVar6[5] - *pdVar6;\n        dStack_258 = pdVar6[6] - pdVar6[1];\n        if ((dVar61 <= ABS(dStack_260)) || (dVar61 <= ABS(dStack_258))) {\n          iVar38 = 1;\n        }\n        else {\n          iVar38 = 1;\n          pdVar7 = pdVar6 + 10;\n          do {\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));\n        }\nLAB_000a5110:\n        uVar4 = iVar29 * 2;\n        pdVar7 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        pdVar8 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        if (pdVar7 == (double *)0x0) {\n          if (pdVar8 != (double *)0x0) {\n            (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n          uVar26 = 0x1c93;\n          goto LAB_000a5724;\n        }\n        if (pdVar8 == (double *)0x0) {\n          (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n          goto LAB_000a6cbc;\n        }\n        if (ABS(dStack_260) < *(double *)(iVar18 + 0x13f8)) {\n          dVar61 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else if (ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)) {\n          dVar52 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }\nLAB_000a51b0:\n        dVar42 = (double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18);\n        iVar16 = *(int *)(param_2 + 0x24c) * *(int *)(param_2 + 0x24c);\n        dVar42 = dVar42 * *(double *)(param_2 + 0x1b0) *\n                 *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400);\n        dVar46 = (double)iVar16;\n        if (iVar16 < 0) {\n          dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418);\n        }\n        dVar46 = dVar46 * dVar42 * dVar42;\n        if (*(int *)(param_2 + 0x244) == 3) {\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            iVar16 = iVar29 + -2;\n            dVar50 = pdVar11[1];\n            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);\n            pdVar21 = pdVar6 + iVar16 * 5;\n            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            dVar50 = pdVar21[1];\n            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            goto LAB_000a5220;\n          }\n        }\n        else {\nLAB_000a5220:\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n        }\n        dVar43 = dVar42 * dVar42;\n        dVar53 = dVar43 / (dVar61 * dVar61 + *(double *)(iVar16 + 0x1438));\n        dVar64 = SQRT(dVar53);\n        if (dVar53 < 0.0) {\n          (**(code **)(puVar36 + 0x304770))();\n        }\n        dVar61 = dVar61 * dVar64;\n        pdVar11 = pdVar6 + iVar38 * 5;\n        dVar58 = *pdVar11;\n        dVar62 = pdVar11[1];\n        dVar57 = dVar61 + pdVar6[1];\n        dVar55 = pdVar6[1] - dVar61;\n        dVar53 = dVar64 + *pdVar6;\n        dStack_238 = dVar62 - dVar61;\n        dStack_240 = dVar58 - dVar64;\n        dVar56 = *pdVar6 - dVar64;\n        dVar51 = dVar56;\n        dVar50 = dVar57;\n        dStack_250 = dVar64 + dVar58;\n        dStack_248 = dVar61 + dVar62;\n        if (0.0 < dVar64 * dStack_258 - dVar61 * dStack_260) {\n          dVar51 = dVar53;\n          dVar50 = dVar55;\n          dVar53 = dVar56;\n          dVar55 = dVar57;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar64 + dVar58;\n          dStack_238 = dVar61 + dVar62;\n        }\n        iVar32 = iVar38 + 1;\n        *pdVar8 = dVar51;\n        pdVar8[1] = dVar55;\n        *pdVar7 = dVar53;\n        pdVar7[1] = dVar50;\n        if (iVar32 < iVar29) {\n          iVar20 = *(int *)(puVar36 + 0x303bd8);\n          iVar33 = 1;\n          iVar35 = 1;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78);\n          dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar4;\n          do {\n            dVar44 = pdVar11[6];\n            dVar47 = pdVar11[5];\n            dVar48 = dVar44 - dVar62;\n            dVar54 = dVar47 - dVar58;\n            dVar49 = dVar47 - dVar58;\n            dVar56 = dStack_238;\n            dVar57 = dStack_240;\n            dVar59 = dStack_248;\n            dVar63 = dStack_250;\n            if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar63;\n            dStack_248 = dVar59;\n            dStack_240 = dVar57;\n            dStack_238 = dVar56;\n            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;\n            pdVar11 = pdVar11 + 5;\n            iVar32 = iVar32 + 1;\n            dVar58 = pdVar6[iVar38 * 5];\n            dVar62 = (pdVar6 + iVar38 * 5)[1];\n          } while( true );\n        }\n        iVar38 = 4;\n        iVar32 = 0x10;\n        iVar35 = 0x10;\n        iVar29 = 2;\n        goto LAB_000a5a70;\n      }" { (if_statement "if (*(int *)(param_2 + 0x248) - 1U < 2) {\n          pdVar8 = pdStack_e8 + 5;\n          do {\n            pdVar21 = pdVar7;\n            pdVar11 = pdVar8;\n            pdVar8 = pdVar11 + 2;\n            uVar28 = *(undefined4 *)(pdVar11 + 1);\n            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n            uVar27 = *(undefined4 *)pdVar11;\n            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);\n            *(undefined4 *)(pdVar21 + 1) = uVar28;\n            *(undefined4 *)pdVar21 = uVar27;\n            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;\n            pdVar7 = pdVar21 + 2;\n          } while (pdVar8 != pdStack_e8 + 9);\n          iVar32 = iVar32 + 0x28;\n          uVar26 = *(undefined4 *)pdVar8;\n          pdVar7 = pdVar6 + iVar29 * 5 + 5;\n          *(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14);\n          *(undefined4 *)(pdVar21 + 2) = uVar26;\n          iVar29 = iVar29 + 1;\n        }" if (parenthesized_expression "(*(int *)(param_2 + 0x248) - 1U < 2)" ( (binary_expression "*(int *)(param_2 + 0x248) - 1U < 2" (binary_expression "*(int *)(param_2 + 0x248) - 1U" (pointer_expression "*(int *)(param_2 + 0x248)" * (cast_expression "(int *)(param_2 + 0x248)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x248)" ( (binary_expression "param_2 + 0x248" identifier + number_literal) )))) - number_literal) < number_literal) )) (compound_statement "{\n          pdVar8 = pdStack_e8 + 5;\n          do {\n            pdVar21 = pdVar7;\n            pdVar11 = pdVar8;\n            pdVar8 = pdVar11 + 2;\n            uVar28 = *(undefined4 *)(pdVar11 + 1);\n            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n            uVar27 = *(undefined4 *)pdVar11;\n            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);\n            *(undefined4 *)(pdVar21 + 1) = uVar28;\n            *(undefined4 *)pdVar21 = uVar27;\n            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;\n            pdVar7 = pdVar21 + 2;\n          } while (pdVar8 != pdStack_e8 + 9);\n          iVar32 = iVar32 + 0x28;\n          uVar26 = *(undefined4 *)pdVar8;\n          pdVar7 = pdVar6 + iVar29 * 5 + 5;\n          *(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14);\n          *(undefined4 *)(pdVar21 + 2) = uVar26;\n          iVar29 = iVar29 + 1;\n        }" { (expression_statement "pdVar8 = pdStack_e8 + 5;" (assignment_expression "pdVar8 = pdStack_e8 + 5" identifier = (binary_expression "pdStack_e8 + 5" identifier + number_literal)) ;) (do_statement "do {\n            pdVar21 = pdVar7;\n            pdVar11 = pdVar8;\n            pdVar8 = pdVar11 + 2;\n            uVar28 = *(undefined4 *)(pdVar11 + 1);\n            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n            uVar27 = *(undefined4 *)pdVar11;\n            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);\n            *(undefined4 *)(pdVar21 + 1) = uVar28;\n            *(undefined4 *)pdVar21 = uVar27;\n            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;\n            pdVar7 = pdVar21 + 2;\n          } while (pdVar8 != pdStack_e8 + 9);" do (compound_statement "{\n            pdVar21 = pdVar7;\n            pdVar11 = pdVar8;\n            pdVar8 = pdVar11 + 2;\n            uVar28 = *(undefined4 *)(pdVar11 + 1);\n            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n            uVar27 = *(undefined4 *)pdVar11;\n            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);\n            *(undefined4 *)(pdVar21 + 1) = uVar28;\n            *(undefined4 *)pdVar21 = uVar27;\n            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;\n            pdVar7 = pdVar21 + 2;\n          }" { (expression_statement "pdVar21 = pdVar7;" (assignment_expression "pdVar21 = pdVar7" identifier = identifier) ;) (expression_statement "pdVar11 = pdVar8;" (assignment_expression "pdVar11 = pdVar8" identifier = identifier) ;) (expression_statement "pdVar8 = pdVar11 + 2;" (assignment_expression "pdVar8 = pdVar11 + 2" identifier = (binary_expression "pdVar11 + 2" identifier + number_literal)) ;) (expression_statement "uVar28 = *(undefined4 *)(pdVar11 + 1);" (assignment_expression "uVar28 = *(undefined4 *)(pdVar11 + 1)" identifier = (pointer_expression "*(undefined4 *)(pdVar11 + 1)" * (cast_expression "(undefined4 *)(pdVar11 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar11 + 1)" ( (binary_expression "pdVar11 + 1" identifier + number_literal) ))))) ;) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar11 + 0xc)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar11 + 0xc)" * (cast_expression "(undefined4 *)((int)pdVar11 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar11 + 0xc)" ( (binary_expression "(int)pdVar11 + 0xc" (cast_expression "(int)pdVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar27 = *(undefined4 *)pdVar11;" (assignment_expression "uVar27 = *(undefined4 *)pdVar11" identifier = (pointer_expression "*(undefined4 *)pdVar11" * (cast_expression "(undefined4 *)pdVar11" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);" (assignment_expression "*(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4)" (pointer_expression "*(undefined4 *)((int)pdVar21 + 4)" * (cast_expression "(undefined4 *)((int)pdVar21 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar21 + 4)" ( (binary_expression "(int)pdVar21 + 4" (cast_expression "(int)pdVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pdVar11 + 4)" * (cast_expression "(undefined4 *)((int)pdVar11 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar11 + 4)" ( (binary_expression "(int)pdVar11 + 4" (cast_expression "(int)pdVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(pdVar21 + 1) = uVar28;" (assignment_expression "*(undefined4 *)(pdVar21 + 1) = uVar28" (pointer_expression "*(undefined4 *)(pdVar21 + 1)" * (cast_expression "(undefined4 *)(pdVar21 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar21 + 1)" ( (binary_expression "pdVar21 + 1" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)pdVar21 = uVar27;" (assignment_expression "*(undefined4 *)pdVar21 = uVar27" (pointer_expression "*(undefined4 *)pdVar21" * (cast_expression "(undefined4 *)pdVar21" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(undefined4 *)((int)pdVar21 + 0xc) = uVar26;" (assignment_expression "*(undefined4 *)((int)pdVar21 + 0xc) = uVar26" (pointer_expression "*(undefined4 *)((int)pdVar21 + 0xc)" * (cast_expression "(undefined4 *)((int)pdVar21 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar21 + 0xc)" ( (binary_expression "(int)pdVar21 + 0xc" (cast_expression "(int)pdVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pdVar7 = pdVar21 + 2;" (assignment_expression "pdVar7 = pdVar21 + 2" identifier = (binary_expression "pdVar21 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(pdVar8 != pdStack_e8 + 9)" ( (binary_expression "pdVar8 != pdStack_e8 + 9" identifier != (binary_expression "pdStack_e8 + 9" identifier + number_literal)) )) ;) (expression_statement "iVar32 = iVar32 + 0x28;" (assignment_expression "iVar32 = iVar32 + 0x28" identifier = (binary_expression "iVar32 + 0x28" identifier + number_literal)) ;) (expression_statement "uVar26 = *(undefined4 *)pdVar8;" (assignment_expression "uVar26 = *(undefined4 *)pdVar8" identifier = (pointer_expression "*(undefined4 *)pdVar8" * (cast_expression "(undefined4 *)pdVar8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pdVar7 = pdVar6 + iVar29 * 5 + 5;" (assignment_expression "pdVar7 = pdVar6 + iVar29 * 5 + 5" identifier = (binary_expression "pdVar6 + iVar29 * 5 + 5" (binary_expression "pdVar6 + iVar29 * 5" identifier + (binary_expression "iVar29 * 5" identifier * number_literal)) + number_literal)) ;) (expression_statement "*(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14);" (assignment_expression "*(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14)" (pointer_expression "*(undefined4 *)((int)pdVar21 + 0x14)" * (cast_expression "(undefined4 *)((int)pdVar21 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar21 + 0x14)" ( (binary_expression "(int)pdVar21 + 0x14" (cast_expression "(int)pdVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pdVar11 + 0x14)" * (cast_expression "(undefined4 *)((int)pdVar11 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar11 + 0x14)" ( (binary_expression "(int)pdVar11 + 0x14" (cast_expression "(int)pdVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(pdVar21 + 2) = uVar26;" (assignment_expression "*(undefined4 *)(pdVar21 + 2) = uVar26" (pointer_expression "*(undefined4 *)(pdVar21 + 2)" * (cast_expression "(undefined4 *)(pdVar21 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar21 + 2)" ( (binary_expression "pdVar21 + 2" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar29 = iVar29 + 1;" (assignment_expression "iVar29 = iVar29 + 1" identifier = (binary_expression "iVar29 + 1" identifier + number_literal)) ;) })) (expression_statement "iStack_188 = 1;" (assignment_expression "iStack_188 = 1" identifier = number_literal) ;) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "bVar1 = iVar29 < 2;" (assignment_expression "bVar1 = iVar29 < 2" identifier = (binary_expression "iVar29 < 2" identifier < number_literal)) ;) (expression_statement "*(undefined4 *)((int)pdVar7 + 0x14) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar7 + 0x14) = 0" (pointer_expression "*(undefined4 *)((int)pdVar7 + 0x14)" * (cast_expression "(undefined4 *)((int)pdVar7 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar7 + 0x14)" ( (binary_expression "(int)pdVar7 + 0x14" (cast_expression "(int)pdVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (if_statement "if (bVar1) goto LAB_000a6124;" if (parenthesized_expression "(bVar1)" ( identifier )) (goto_statement "goto LAB_000a6124;" goto statement_identifier ;)) (labeled_statement "LAB_000a4fe8:\n        dVar61 = *(double *)(iVar18 + 0x13f8);" statement_identifier : (expression_statement "dVar61 = *(double *)(iVar18 + 0x13f8);" (assignment_expression "dVar61 = *(double *)(iVar18 + 0x13f8)" identifier = (pointer_expression "*(double *)(iVar18 + 0x13f8)" * (cast_expression "(double *)(iVar18 + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x13f8)" ( (binary_expression "iVar18 + 0x13f8" identifier + number_literal) ))))) ;)) (expression_statement "dStack_260 = pdVar6[5] - *pdVar6;" (assignment_expression "dStack_260 = pdVar6[5] - *pdVar6" identifier = (binary_expression "pdVar6[5] - *pdVar6" (subscript_expression "pdVar6[5]" identifier [ number_literal ]) - (pointer_expression "*pdVar6" * identifier))) ;) (expression_statement "dStack_258 = pdVar6[6] - pdVar6[1];" (assignment_expression "dStack_258 = pdVar6[6] - pdVar6[1]" identifier = (binary_expression "pdVar6[6] - pdVar6[1]" (subscript_expression "pdVar6[6]" identifier [ number_literal ]) - (subscript_expression "pdVar6[1]" identifier [ number_literal ]))) ;) (if_statement "if ((dVar61 <= ABS(dStack_260)) || (dVar61 <= ABS(dStack_258))) {\n          iVar38 = 1;\n        }\n        else {\n          iVar38 = 1;\n          pdVar7 = pdVar6 + 10;\n          do {\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));\n        }" if (parenthesized_expression "((dVar61 <= ABS(dStack_260)) || (dVar61 <= ABS(dStack_258)))" ( (binary_expression "(dVar61 <= ABS(dStack_260)) || (dVar61 <= ABS(dStack_258))" (parenthesized_expression "(dVar61 <= ABS(dStack_260))" ( (binary_expression "dVar61 <= ABS(dStack_260)" identifier <= (call_expression "ABS(dStack_260)" identifier (argument_list "(dStack_260)" ( identifier )))) )) || (parenthesized_expression "(dVar61 <= ABS(dStack_258))" ( (binary_expression "dVar61 <= ABS(dStack_258)" identifier <= (call_expression "ABS(dStack_258)" identifier (argument_list "(dStack_258)" ( identifier )))) ))) )) (compound_statement "{\n          iVar38 = 1;\n        }" { (expression_statement "iVar38 = 1;" (assignment_expression "iVar38 = 1" identifier = number_literal) ;) }) (else_clause "else {\n          iVar38 = 1;\n          pdVar7 = pdVar6 + 10;\n          do {\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));\n        }" else (compound_statement "{\n          iVar38 = 1;\n          pdVar7 = pdVar6 + 10;\n          do {\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));\n        }" { (expression_statement "iVar38 = 1;" (assignment_expression "iVar38 = 1" identifier = number_literal) ;) (expression_statement "pdVar7 = pdVar6 + 10;" (assignment_expression "pdVar7 = pdVar6 + 10" identifier = (binary_expression "pdVar6 + 10" identifier + number_literal)) ;) (do_statement "do {\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));" do (compound_statement "{\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          }" { (expression_statement "iVar38 = iVar38 + 1;" (assignment_expression "iVar38 = iVar38 + 1" identifier = (binary_expression "iVar38 + 1" identifier + number_literal)) ;) (if_statement "if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }" if (parenthesized_expression "(iVar38 == iVar29)" ( (binary_expression "iVar38 == iVar29" identifier == identifier) )) (compound_statement "{\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }" { (expression_statement "iVar16 = *(int *)(param_2 + 0x244);" (assignment_expression "iVar16 = *(int *)(param_2 + 0x244)" identifier = (pointer_expression "*(int *)(param_2 + 0x244)" * (cast_expression "(int *)(param_2 + 0x244)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x244)" ( (binary_expression "param_2 + 0x244" identifier + number_literal) ))))) ;) (expression_statement "iVar38 = iVar29;" (assignment_expression "iVar38 = iVar29" identifier = identifier) ;) (goto_statement "goto joined_r0x000a50f8;" goto statement_identifier ;) })) (expression_statement "dStack_260 = *pdVar7 - *pdVar6;" (assignment_expression "dStack_260 = *pdVar7 - *pdVar6" identifier = (binary_expression "*pdVar7 - *pdVar6" (pointer_expression "*pdVar7" * identifier) - (pointer_expression "*pdVar6" * identifier))) ;) (expression_statement "dStack_258 = pdVar7[1] - pdVar6[1];" (assignment_expression "dStack_258 = pdVar7[1] - pdVar6[1]" identifier = (binary_expression "pdVar7[1] - pdVar6[1]" (subscript_expression "pdVar7[1]" identifier [ number_literal ]) - (subscript_expression "pdVar6[1]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61))" ( (binary_expression "(ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61)" (parenthesized_expression "(ABS(dStack_260) < dVar61)" ( (binary_expression "ABS(dStack_260) < dVar61" (call_expression "ABS(dStack_260)" identifier (argument_list "(dStack_260)" ( identifier ))) < identifier) )) && (parenthesized_expression "(pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61)" ( (comma_expression "pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61" (assignment_expression "pdVar7 = pdVar7 + 5" identifier = (binary_expression "pdVar7 + 5" identifier + number_literal)) , (binary_expression "ABS(dStack_258) < dVar61" (call_expression "ABS(dStack_258)" identifier (argument_list "(dStack_258)" ( identifier ))) < identifier)) ))) )) ;) }))) (labeled_statement "LAB_000a5110:\n        uVar4 = iVar29 * 2;" statement_identifier : (expression_statement "uVar4 = iVar29 * 2;" (assignment_expression "uVar4 = iVar29 * 2" identifier = (binary_expression "iVar29 * 2" identifier * number_literal)) ;)) (expression_statement "pdVar7 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);" (assignment_expression "pdVar7 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10)" identifier = (cast_expression "(double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10)" (parenthesized_expression "(**(code **)(puVar36 + 0x3047fc))" ( (pointer_expression "**(code **)(puVar36 + 0x3047fc)" * (pointer_expression "*(code **)(puVar36 + 0x3047fc)" * (cast_expression "(code **)(puVar36 + 0x3047fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3047fc)" ( (binary_expression "puVar36 + 0x3047fc" identifier + number_literal) ))))) )) (argument_list "(uVar4 + 0x618,0x10)" ( (binary_expression "uVar4 + 0x618" identifier + number_literal) , number_literal ))))) ;) (expression_statement "pdVar8 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);" (assignment_expression "pdVar8 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10)" identifier = (cast_expression "(double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10)" (parenthesized_expression "(**(code **)(puVar36 + 0x3047fc))" ( (pointer_expression "**(code **)(puVar36 + 0x3047fc)" * (pointer_expression "*(code **)(puVar36 + 0x3047fc)" * (cast_expression "(code **)(puVar36 + 0x3047fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3047fc)" ( (binary_expression "puVar36 + 0x3047fc" identifier + number_literal) ))))) )) (argument_list "(uVar4 + 0x618,0x10)" ( (binary_expression "uVar4 + 0x618" identifier + number_literal) , number_literal ))))) ;) (if_statement "if (pdVar7 == (double *)0x0) {\n          if (pdVar8 != (double *)0x0) {\n            (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n          uVar26 = 0x1c93;\n          goto LAB_000a5724;\n        }" if (parenthesized_expression "(pdVar7 == (double *)0x0)" ( (binary_expression "pdVar7 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (pdVar8 != (double *)0x0) {\n            (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n          uVar26 = 0x1c93;\n          goto LAB_000a5724;\n        }" { (if_statement "if (pdVar8 != (double *)0x0) {\n            (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n          }" if (parenthesized_expression "(pdVar8 != (double *)0x0)" ( (binary_expression "pdVar8 != (double *)0x0" identifier != (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n          }" { (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar8);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar8)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar36 + 0x3042b0)" * (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar8)" ( identifier ))) ;) })) (labeled_statement "LAB_000a6cbc:\n          (**(code **)(puVar36 + 0x3042b0))(pdVar6);" statement_identifier : (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar6);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar6)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar36 + 0x3042b0)" * (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar6)" ( identifier ))) ;)) (expression_statement "uVar26 = 0x1c93;" (assignment_expression "uVar26 = 0x1c93" identifier = number_literal) ;) (goto_statement "goto LAB_000a5724;" goto statement_identifier ;) })) (if_statement "if (pdVar8 == (double *)0x0) {\n          (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n          goto LAB_000a6cbc;\n        }" if (parenthesized_expression "(pdVar8 == (double *)0x0)" ( (binary_expression "pdVar8 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n          goto LAB_000a6cbc;\n        }" { (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar7);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar7)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar36 + 0x3042b0)" * (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar7)" ( identifier ))) ;) (goto_statement "goto LAB_000a6cbc;" goto statement_identifier ;) })) (if_statement "if (ABS(dStack_260) < *(double *)(iVar18 + 0x13f8)) {\n          dVar61 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else if (ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)) {\n          dVar52 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }" if (parenthesized_expression "(ABS(dStack_260) < *(double *)(iVar18 + 0x13f8))" ( (binary_expression "ABS(dStack_260) < *(double *)(iVar18 + 0x13f8)" (call_expression "ABS(dStack_260)" identifier (argument_list "(dStack_260)" ( identifier ))) < (pointer_expression "*(double *)(iVar18 + 0x13f8)" * (cast_expression "(double *)(iVar18 + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x13f8)" ( (binary_expression "iVar18 + 0x13f8" identifier + number_literal) ))))) )) (compound_statement "{\n          dVar61 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }" { (expression_statement "dVar61 = 0.0;" (assignment_expression "dVar61 = 0.0" identifier = number_literal) ;) (if_statement "if (0.0 <= dStack_260) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }" if (parenthesized_expression "(0.0 <= dStack_260)" ( (binary_expression "0.0 <= dStack_260" number_literal <= identifier) )) (compound_statement "{\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }" { (expression_statement "iVar16 = *(int *)(puVar36 + 0x303bd8);" (assignment_expression "iVar16 = *(int *)(puVar36 + 0x303bd8)" identifier = (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) ))))) ;) (if_statement "if (dStack_258 < 0.0) goto LAB_000a56e8;" if (parenthesized_expression "(dStack_258 < 0.0)" ( (binary_expression "dStack_258 < 0.0" identifier < number_literal) )) (goto_statement "goto LAB_000a56e8;" goto statement_identifier ;)) }) (else_clause "else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }" else (compound_statement "{\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }" { (expression_statement "iVar16 = *(int *)(puVar36 + 0x303bd8);" (assignment_expression "iVar16 = *(int *)(puVar36 + 0x303bd8)" identifier = (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) ))))) ;) (if_statement "if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }" if (parenthesized_expression "(0.0 <= dStack_258)" ( (binary_expression "0.0 <= dStack_258" number_literal <= identifier) )) (compound_statement "{\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }" { (labeled_statement "LAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);" statement_identifier : (expression_statement "dVar52 = *(double *)(iVar16 + 0x47d0);" (assignment_expression "dVar52 = *(double *)(iVar16 + 0x47d0)" identifier = (pointer_expression "*(double *)(iVar16 + 0x47d0)" * (cast_expression "(double *)(iVar16 + 0x47d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x47d0)" ( (binary_expression "iVar16 + 0x47d0" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_000a51b0;" goto statement_identifier ;) })) }))) (expression_statement "dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);" (assignment_expression "dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" identifier = (pointer_expression "*(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" * (cast_expression "(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" ( (binary_expression "*(int *)(puVar36 + 0x303bd0) + 0x1a68" (pointer_expression "*(int *)(puVar36 + 0x303bd0)" * (cast_expression "(int *)(puVar36 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd0)" ( (binary_expression "puVar36 + 0x303bd0" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else if (ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)) {\n          dVar52 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }" else (if_statement "if (ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)) {\n          dVar52 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }" if (parenthesized_expression "(ABS(dStack_258) < *(double *)(iVar18 + 0x13f8))" ( (binary_expression "ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)" (call_expression "ABS(dStack_258)" identifier (argument_list "(dStack_258)" ( identifier ))) < (pointer_expression "*(double *)(iVar18 + 0x13f8)" * (cast_expression "(double *)(iVar18 + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x13f8)" ( (binary_expression "iVar18 + 0x13f8" identifier + number_literal) ))))) )) (compound_statement "{\n          dVar52 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }" { (expression_statement "dVar52 = 0.0;" (assignment_expression "dVar52 = 0.0" identifier = number_literal) ;) (if_statement "if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }" if (parenthesized_expression "(0.0 <= dStack_258)" ( (binary_expression "0.0 <= dStack_258" number_literal <= identifier) )) (compound_statement "{\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }" { (expression_statement "iVar16 = *(int *)(puVar36 + 0x303bd8);" (assignment_expression "iVar16 = *(int *)(puVar36 + 0x303bd8)" identifier = (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) ))))) ;) (if_statement "if (dStack_260 < 0.0) goto LAB_000a684c;" if (parenthesized_expression "(dStack_260 < 0.0)" ( (binary_expression "dStack_260 < 0.0" identifier < number_literal) )) (goto_statement "goto LAB_000a684c;" goto statement_identifier ;)) }) (else_clause "else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }" else (compound_statement "{\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }" { (expression_statement "iVar16 = *(int *)(puVar36 + 0x303bd8);" (assignment_expression "iVar16 = *(int *)(puVar36 + 0x303bd8)" identifier = (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) ))))) ;) (if_statement "if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }" if (parenthesized_expression "(0.0 <= dStack_260)" ( (binary_expression "0.0 <= dStack_260" number_literal <= identifier) )) (compound_statement "{\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }" { (labeled_statement "LAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);" statement_identifier : (expression_statement "dVar61 = *(double *)(iVar16 + 0x47d0);" (assignment_expression "dVar61 = *(double *)(iVar16 + 0x47d0)" identifier = (pointer_expression "*(double *)(iVar16 + 0x47d0)" * (cast_expression "(double *)(iVar16 + 0x47d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x47d0)" ( (binary_expression "iVar16 + 0x47d0" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_000a51b0;" goto statement_identifier ;) })) }))) (expression_statement "dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);" (assignment_expression "dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" identifier = (pointer_expression "*(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" * (cast_expression "(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" ( (binary_expression "*(int *)(puVar36 + 0x303bd0) + 0x1a68" (pointer_expression "*(int *)(puVar36 + 0x303bd0)" * (cast_expression "(int *)(puVar36 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd0)" ( (binary_expression "puVar36 + 0x303bd0" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }" else (compound_statement "{\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }" { (expression_statement "dVar52 = dStack_258 / dStack_260;" (assignment_expression "dVar52 = dStack_258 / dStack_260" identifier = (binary_expression "dStack_258 / dStack_260" identifier / identifier)) ;) (expression_statement "dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;" (assignment_expression "dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52" identifier = (binary_expression "*(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52" (pointer_expression "*(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78)" * (cast_expression "(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + 0x303bd0) + 0x1a78)" ( (binary_expression "*(int *)(puVar36 + 0x303bd0) + 0x1a78" (pointer_expression "*(int *)(puVar36 + 0x303bd0)" * (cast_expression "(int *)(puVar36 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd0)" ( (binary_expression "puVar36 + 0x303bd0" identifier + number_literal) )))) + number_literal) )))) / identifier)) ;) }))))) (labeled_statement "LAB_000a51b0:\n        dVar42 = (double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18);" statement_identifier : (expression_statement "dVar42 = (double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18);" (assignment_expression "dVar42 = (double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18)" identifier = (cast_expression "(double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar36 + 0x304288))(param_2 + 0x18)" (parenthesized_expression "(**(code **)(puVar36 + 0x304288))" ( (pointer_expression "**(code **)(puVar36 + 0x304288)" * (pointer_expression "*(code **)(puVar36 + 0x304288)" * (cast_expression "(code **)(puVar36 + 0x304288)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304288)" ( (binary_expression "puVar36 + 0x304288" identifier + number_literal) ))))) )) (argument_list "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) ;)) (expression_statement "iVar16 = *(int *)(param_2 + 0x24c) * *(int *)(param_2 + 0x24c);" (assignment_expression "iVar16 = *(int *)(param_2 + 0x24c) * *(int *)(param_2 + 0x24c)" identifier = (binary_expression "*(int *)(param_2 + 0x24c) * *(int *)(param_2 + 0x24c)" (pointer_expression "*(int *)(param_2 + 0x24c)" * (cast_expression "(int *)(param_2 + 0x24c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x24c)" ( (binary_expression "param_2 + 0x24c" identifier + number_literal) )))) * (pointer_expression "*(int *)(param_2 + 0x24c)" * (cast_expression "(int *)(param_2 + 0x24c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x24c)" ( (binary_expression "param_2 + 0x24c" identifier + number_literal) )))))) ;) (expression_statement "dVar42 = dVar42 * *(double *)(param_2 + 0x1b0) *\n                 *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400);" (assignment_expression "dVar42 = dVar42 * *(double *)(param_2 + 0x1b0) *\n                 *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400)" identifier = (binary_expression "dVar42 * *(double *)(param_2 + 0x1b0) *\n                 *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400)" (binary_expression "dVar42 * *(double *)(param_2 + 0x1b0)" identifier * (pointer_expression "*(double *)(param_2 + 0x1b0)" * (cast_expression "(double *)(param_2 + 0x1b0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1b0)" ( (binary_expression "param_2 + 0x1b0" identifier + number_literal) ))))) * (pointer_expression "*(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400)" * (cast_expression "(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + 0x303bd0) + 0x1400)" ( (binary_expression "*(int *)(puVar36 + 0x303bd0) + 0x1400" (pointer_expression "*(int *)(puVar36 + 0x303bd0)" * (cast_expression "(int *)(puVar36 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd0)" ( (binary_expression "puVar36 + 0x303bd0" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "dVar46 = (double)iVar16;" (assignment_expression "dVar46 = (double)iVar16" identifier = (cast_expression "(double)iVar16" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (if_statement "if (iVar16 < 0) {\n          dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418);\n        }" if (parenthesized_expression "(iVar16 < 0)" ( (binary_expression "iVar16 < 0" identifier < number_literal) )) (compound_statement "{\n          dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418);\n        }" { (expression_statement "dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418);" (assignment_expression "dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418)" identifier = (binary_expression "dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418)" identifier + (pointer_expression "*(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418)" * (cast_expression "(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + 0x303bd0) + 0x1418)" ( (binary_expression "*(int *)(puVar36 + 0x303bd0) + 0x1418" (pointer_expression "*(int *)(puVar36 + 0x303bd0)" * (cast_expression "(int *)(puVar36 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd0)" ( (binary_expression "puVar36 + 0x303bd0" identifier + number_literal) )))) + number_literal) )))))) ;) })) (expression_statement "dVar46 = dVar46 * dVar42 * dVar42;" (assignment_expression "dVar46 = dVar46 * dVar42 * dVar42" identifier = (binary_expression "dVar46 * dVar42 * dVar42" (binary_expression "dVar46 * dVar42" identifier * identifier) * identifier)) ;) (if_statement "if (*(int *)(param_2 + 0x244) == 3) {\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            iVar16 = iVar29 + -2;\n            dVar50 = pdVar11[1];\n            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);\n            pdVar21 = pdVar6 + iVar16 * 5;\n            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            dVar50 = pdVar21[1];\n            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            goto LAB_000a5220;\n          }\n        }\n        else {\nLAB_000a5220:\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n        }" if (parenthesized_expression "(*(int *)(param_2 + 0x244) == 3)" ( (binary_expression "*(int *)(param_2 + 0x244) == 3" (pointer_expression "*(int *)(param_2 + 0x244)" * (cast_expression "(int *)(param_2 + 0x244)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x244)" ( (binary_expression "param_2 + 0x244" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            iVar16 = iVar29 + -2;\n            dVar50 = pdVar11[1];\n            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);\n            pdVar21 = pdVar6 + iVar16 * 5;\n            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            dVar50 = pdVar21[1];\n            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            goto LAB_000a5220;\n          }\n        }" { (expression_statement "iVar16 = *(int *)(puVar36 + 0x303bd0);" (assignment_expression "iVar16 = *(int *)(puVar36 + 0x303bd0)" identifier = (pointer_expression "*(int *)(puVar36 + 0x303bd0)" * (cast_expression "(int *)(puVar36 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd0)" ( (binary_expression "puVar36 + 0x303bd0" identifier + number_literal) ))))) ;) (if_statement "if (!bVar2) {\n            if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            iVar16 = iVar29 + -2;\n            dVar50 = pdVar11[1];\n            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);\n            pdVar21 = pdVar6 + iVar16 * 5;\n            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            dVar50 = pdVar21[1];\n            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            goto LAB_000a5220;\n          }" if (parenthesized_expression "(!bVar2)" ( (unary_expression "!bVar2" ! identifier) )) (compound_statement "{\n            if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            iVar16 = iVar29 + -2;\n            dVar50 = pdVar11[1];\n            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);\n            pdVar21 = pdVar6 + iVar16 * 5;\n            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            dVar50 = pdVar21[1];\n            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            goto LAB_000a5220;\n          }" { (if_statement "if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }" { (expression_statement "dVar43 = 0.0;" (assignment_expression "dVar43 = 0.0" identifier = number_literal) ;) (if_statement "if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }" if (parenthesized_expression "(iVar29 == 1)" ( (binary_expression "iVar29 == 1" identifier == number_literal) )) (compound_statement "{\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }" { (expression_statement "dVar53 = 0.0;" (assignment_expression "dVar53 = 0.0" identifier = number_literal) ;) (expression_statement "iVar16 = 1;" (assignment_expression "iVar16 = 1" identifier = number_literal) ;) (labeled_statement "LAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;" statement_identifier : (expression_statement "pdVar11 = pdVar6 + (iVar16 + -1) * 5;" (assignment_expression "pdVar11 = pdVar6 + (iVar16 + -1) * 5" identifier = (binary_expression "pdVar6 + (iVar16 + -1) * 5" identifier + (binary_expression "(iVar16 + -1) * 5" (parenthesized_expression "(iVar16 + -1)" ( (binary_expression "iVar16 + -1" identifier + number_literal) )) * number_literal))) ;)) }) (else_clause "else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }" else (compound_statement "{\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }" { (expression_statement "pdVar11 = pdVar6 + 5;" (assignment_expression "pdVar11 = pdVar6 + 5" identifier = (binary_expression "pdVar6 + 5" identifier + number_literal)) ;) (expression_statement "dVar53 = 0.0;" (assignment_expression "dVar53 = 0.0" identifier = number_literal) ;) }))) }) (else_clause "else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }" else (compound_statement "{\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }" { (expression_statement "dVar64 = *(double *)(iVar18 + 0x13f8);" (assignment_expression "dVar64 = *(double *)(iVar18 + 0x13f8)" identifier = (pointer_expression "*(double *)(iVar18 + 0x13f8)" * (cast_expression "(double *)(iVar18 + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x13f8)" ( (binary_expression "iVar18 + 0x13f8" identifier + number_literal) ))))) ;) (expression_statement "dVar53 = *pdVar6 - pdVar6[5];" (assignment_expression "dVar53 = *pdVar6 - pdVar6[5]" identifier = (binary_expression "*pdVar6 - pdVar6[5]" (pointer_expression "*pdVar6" * identifier) - (subscript_expression "pdVar6[5]" identifier [ number_literal ]))) ;) (expression_statement "dVar43 = pdVar6[1] - pdVar6[6];" (assignment_expression "dVar43 = pdVar6[1] - pdVar6[6]" identifier = (binary_expression "pdVar6[1] - pdVar6[6]" (subscript_expression "pdVar6[1]" identifier [ number_literal ]) - (subscript_expression "pdVar6[6]" identifier [ number_literal ]))) ;) (if_statement "if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }" if (parenthesized_expression "((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43)))" ( (binary_expression "(dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))" (parenthesized_expression "(dVar64 <= ABS(dVar53))" ( (binary_expression "dVar64 <= ABS(dVar53)" identifier <= (call_expression "ABS(dVar53)" identifier (argument_list "(dVar53)" ( identifier )))) )) || (parenthesized_expression "(dVar64 <= ABS(dVar43))" ( (binary_expression "dVar64 <= ABS(dVar43)" identifier <= (call_expression "ABS(dVar43)" identifier (argument_list "(dVar43)" ( identifier )))) ))) )) (compound_statement "{\n                pdVar11 = pdVar6 + 5;\n              }" { (expression_statement "pdVar11 = pdVar6 + 5;" (assignment_expression "pdVar11 = pdVar6 + 5" identifier = (binary_expression "pdVar6 + 5" identifier + number_literal)) ;) }) (else_clause "else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }" else (compound_statement "{\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }" { (expression_statement "iVar33 = 1;" (assignment_expression "iVar33 = 1" identifier = number_literal) ;) (expression_statement "pdVar21 = pdVar6 + 10;" (assignment_expression "pdVar21 = pdVar6 + 10" identifier = (binary_expression "pdVar6 + 10" identifier + number_literal)) ;) (do_statement "do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));" do (compound_statement "{\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                }" { (expression_statement "pdVar11 = pdVar21;" (assignment_expression "pdVar11 = pdVar21" identifier = identifier) ;) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "iVar16 = iVar29;" (assignment_expression "iVar16 = iVar29" identifier = identifier) ;) (if_statement "if (iVar33 == iVar29) goto LAB_000a6998;" if (parenthesized_expression "(iVar33 == iVar29)" ( (binary_expression "iVar33 == iVar29" identifier == identifier) )) (goto_statement "goto LAB_000a6998;" goto statement_identifier ;)) (expression_statement "dVar53 = *pdVar6 - *pdVar11;" (assignment_expression "dVar53 = *pdVar6 - *pdVar11" identifier = (binary_expression "*pdVar6 - *pdVar11" (pointer_expression "*pdVar6" * identifier) - (pointer_expression "*pdVar11" * identifier))) ;) (expression_statement "dVar43 = pdVar6[1] - pdVar11[1];" (assignment_expression "dVar43 = pdVar6[1] - pdVar11[1]" identifier = (binary_expression "pdVar6[1] - pdVar11[1]" (subscript_expression "pdVar6[1]" identifier [ number_literal ]) - (subscript_expression "pdVar11[1]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64))" ( (binary_expression "(ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64)" (parenthesized_expression "(ABS(dVar53) < dVar64)" ( (binary_expression "ABS(dVar53) < dVar64" (call_expression "ABS(dVar53)" identifier (argument_list "(dVar53)" ( identifier ))) < identifier) )) && (parenthesized_expression "(pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64)" ( (comma_expression "pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64" (assignment_expression "pdVar21 = pdVar11 + 5" identifier = (binary_expression "pdVar11 + 5" identifier + number_literal)) , (binary_expression "ABS(dVar43) < dVar64" (call_expression "ABS(dVar43)" identifier (argument_list "(dVar43)" ( identifier ))) < identifier)) ))) )) ;) }))) }))) (expression_statement "dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);" (assignment_expression "dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43)" identifier = (cast_expression "(double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43)" (parenthesized_expression "(**(code **)(puVar36 + 0x304a08))" ( (pointer_expression "**(code **)(puVar36 + 0x304a08)" * (pointer_expression "*(code **)(puVar36 + 0x304a08)" * (cast_expression "(code **)(puVar36 + 0x304a08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304a08)" ( (binary_expression "puVar36 + 0x304a08" identifier + number_literal) ))))) )) (argument_list "(dVar53,dVar43)" ( identifier , identifier ))))) ;) (expression_statement "iVar16 = iVar29 + -2;" (assignment_expression "iVar16 = iVar29 + -2" identifier = (binary_expression "iVar29 + -2" identifier + number_literal)) ;) (expression_statement "dVar50 = pdVar11[1];" (assignment_expression "dVar50 = pdVar11[1]" identifier = (subscript_expression "pdVar11[1]" identifier [ number_literal ])) ;) (expression_statement "pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);" (assignment_expression "pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28)" identifier = (cast_expression "(double *)((int)pdVar6 + iVar32 + -0x28)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar6 + iVar32 + -0x28)" ( (binary_expression "(int)pdVar6 + iVar32 + -0x28" (binary_expression "(int)pdVar6 + iVar32" (cast_expression "(int)pdVar6" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "pdVar21 = pdVar6 + iVar16 * 5;" (assignment_expression "pdVar21 = pdVar6 + iVar16 * 5" identifier = (binary_expression "pdVar6 + iVar16 * 5" identifier + (binary_expression "iVar16 * 5" identifier * number_literal))) ;) (expression_statement "*pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;" (assignment_expression "*pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64" (pointer_expression "*pdVar6" * identifier) = (binary_expression "*pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64" (pointer_expression "*pdVar11" * identifier) + (binary_expression "(dVar53 * (dVar42 + dVar64)) / dVar64" (parenthesized_expression "(dVar53 * (dVar42 + dVar64))" ( (binary_expression "dVar53 * (dVar42 + dVar64)" identifier * (parenthesized_expression "(dVar42 + dVar64)" ( (binary_expression "dVar42 + dVar64" identifier + identifier) ))) )) / identifier))) ;) (expression_statement "pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;" (assignment_expression "pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64" (subscript_expression "pdVar6[1]" identifier [ number_literal ]) = (binary_expression "dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64" identifier + (binary_expression "(dVar43 * (dVar42 + dVar64)) / dVar64" (parenthesized_expression "(dVar43 * (dVar42 + dVar64))" ( (binary_expression "dVar43 * (dVar42 + dVar64)" identifier * (parenthesized_expression "(dVar42 + dVar64)" ( (binary_expression "dVar42 + dVar64" identifier + identifier) ))) )) / identifier))) ;) (if_statement "if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }" if (parenthesized_expression "(-1 < iVar16)" ( (binary_expression "-1 < iVar16" number_literal < identifier) )) (compound_statement "{\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }" { (expression_statement "dVar64 = *(double *)(iVar18 + 0x13f8);" (assignment_expression "dVar64 = *(double *)(iVar18 + 0x13f8)" identifier = (pointer_expression "*(double *)(iVar18 + 0x13f8)" * (cast_expression "(double *)(iVar18 + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x13f8)" ( (binary_expression "iVar18 + 0x13f8" identifier + number_literal) ))))) ;) (expression_statement "dVar53 = *pdVar31 - *pdVar21;" (assignment_expression "dVar53 = *pdVar31 - *pdVar21" identifier = (binary_expression "*pdVar31 - *pdVar21" (pointer_expression "*pdVar31" * identifier) - (pointer_expression "*pdVar21" * identifier))) ;) (expression_statement "dVar43 = pdVar31[1] - pdVar21[1];" (assignment_expression "dVar43 = pdVar31[1] - pdVar21[1]" identifier = (binary_expression "pdVar31[1] - pdVar21[1]" (subscript_expression "pdVar31[1]" identifier [ number_literal ]) - (subscript_expression "pdVar21[1]" identifier [ number_literal ]))) ;) (if_statement "if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }" if (parenthesized_expression "(ABS(dVar53) < dVar64)" ( (binary_expression "ABS(dVar53) < dVar64" (call_expression "ABS(dVar53)" identifier (argument_list "(dVar53)" ( identifier ))) < identifier) )) (compound_statement "{\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }" { (expression_statement "pdVar11 = pdVar6 + (iVar29 + -3) * 5;" (assignment_expression "pdVar11 = pdVar6 + (iVar29 + -3) * 5" identifier = (binary_expression "pdVar6 + (iVar29 + -3) * 5" identifier + (binary_expression "(iVar29 + -3) * 5" (parenthesized_expression "(iVar29 + -3)" ( (binary_expression "iVar29 + -3" identifier + number_literal) )) * number_literal))) ;) (do_statement "do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);" do (compound_statement "{\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                }" { (expression_statement "pdVar21 = pdVar11;" (assignment_expression "pdVar21 = pdVar11" identifier = identifier) ;) (if_statement "if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }" if (parenthesized_expression "(dVar64 <= ABS(dVar43))" ( (binary_expression "dVar64 <= ABS(dVar43)" identifier <= (call_expression "ABS(dVar43)" identifier (argument_list "(dVar43)" ( identifier )))) )) (compound_statement "{\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }" { (expression_statement "pdVar21 = pdVar6 + iVar16 * 5;" (assignment_expression "pdVar21 = pdVar6 + iVar16 * 5" identifier = (binary_expression "pdVar6 + iVar16 * 5" identifier + (binary_expression "iVar16 * 5" identifier * number_literal))) ;) (break_statement "break;" break ;) })) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (if_statement "if (iVar16 == -1) break;" if (parenthesized_expression "(iVar16 == -1)" ( (binary_expression "iVar16 == -1" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "dVar53 = *pdVar31 - *pdVar21;" (assignment_expression "dVar53 = *pdVar31 - *pdVar21" identifier = (binary_expression "*pdVar31 - *pdVar21" (pointer_expression "*pdVar31" * identifier) - (pointer_expression "*pdVar21" * identifier))) ;) (expression_statement "dVar43 = pdVar31[1] - pdVar21[1];" (assignment_expression "dVar43 = pdVar31[1] - pdVar21[1]" identifier = (binary_expression "pdVar31[1] - pdVar21[1]" (subscript_expression "pdVar31[1]" identifier [ number_literal ]) - (subscript_expression "pdVar21[1]" identifier [ number_literal ]))) ;) (expression_statement "pdVar11 = pdVar21 + -5;" (assignment_expression "pdVar11 = pdVar21 + -5" identifier = (binary_expression "pdVar21 + -5" identifier + number_literal)) ;) }) while (parenthesized_expression "(ABS(dVar53) < dVar64)" ( (binary_expression "ABS(dVar53) < dVar64" (call_expression "ABS(dVar53)" identifier (argument_list "(dVar53)" ( identifier ))) < identifier) )) ;) })) })) (expression_statement "dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);" (assignment_expression "dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43)" identifier = (cast_expression "(double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43)" (parenthesized_expression "(**(code **)(puVar36 + 0x304a08))" ( (pointer_expression "**(code **)(puVar36 + 0x304a08)" * (pointer_expression "*(code **)(puVar36 + 0x304a08)" * (cast_expression "(code **)(puVar36 + 0x304a08)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304a08)" ( (binary_expression "puVar36 + 0x304a08" identifier + number_literal) ))))) )) (argument_list "(dVar53,dVar43)" ( identifier , identifier ))))) ;) (expression_statement "dVar50 = pdVar21[1];" (assignment_expression "dVar50 = pdVar21[1]" identifier = (subscript_expression "pdVar21[1]" identifier [ number_literal ])) ;) (expression_statement "*pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;" (assignment_expression "*pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64" (pointer_expression "*pdVar31" * identifier) = (binary_expression "*pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64" (pointer_expression "*pdVar21" * identifier) + (binary_expression "(dVar53 * (dVar42 + dVar64)) / dVar64" (parenthesized_expression "(dVar53 * (dVar42 + dVar64))" ( (binary_expression "dVar53 * (dVar42 + dVar64)" identifier * (parenthesized_expression "(dVar42 + dVar64)" ( (binary_expression "dVar42 + dVar64" identifier + identifier) ))) )) / identifier))) ;) (expression_statement "pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;" (assignment_expression "pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64" (subscript_expression "pdVar31[1]" identifier [ number_literal ]) = (binary_expression "dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64" identifier + (binary_expression "(dVar43 * (dVar42 + dVar64)) / dVar64" (parenthesized_expression "(dVar43 * (dVar42 + dVar64))" ( (binary_expression "dVar43 * (dVar42 + dVar64)" identifier * (parenthesized_expression "(dVar42 + dVar64)" ( (binary_expression "dVar42 + dVar64" identifier + identifier) ))) )) / identifier))) ;) (goto_statement "goto LAB_000a5220;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_000a5220:\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n        }" else (compound_statement "{\nLAB_000a5220:\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n        }" { (labeled_statement "LAB_000a5220:\n          iVar16 = *(int *)(puVar36 + 0x303bd0);" statement_identifier : (expression_statement "iVar16 = *(int *)(puVar36 + 0x303bd0);" (assignment_expression "iVar16 = *(int *)(puVar36 + 0x303bd0)" identifier = (pointer_expression "*(int *)(puVar36 + 0x303bd0)" * (cast_expression "(int *)(puVar36 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd0)" ( (binary_expression "puVar36 + 0x303bd0" identifier + number_literal) ))))) ;)) }))) (expression_statement "dVar43 = dVar42 * dVar42;" (assignment_expression "dVar43 = dVar42 * dVar42" identifier = (binary_expression "dVar42 * dVar42" identifier * identifier)) ;) (expression_statement "dVar53 = dVar43 / (dVar61 * dVar61 + *(double *)(iVar16 + 0x1438));" (assignment_expression "dVar53 = dVar43 / (dVar61 * dVar61 + *(double *)(iVar16 + 0x1438))" identifier = (binary_expression "dVar43 / (dVar61 * dVar61 + *(double *)(iVar16 + 0x1438))" identifier / (parenthesized_expression "(dVar61 * dVar61 + *(double *)(iVar16 + 0x1438))" ( (binary_expression "dVar61 * dVar61 + *(double *)(iVar16 + 0x1438)" (binary_expression "dVar61 * dVar61" identifier * identifier) + (pointer_expression "*(double *)(iVar16 + 0x1438)" * (cast_expression "(double *)(iVar16 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x1438)" ( (binary_expression "iVar16 + 0x1438" identifier + number_literal) ))))) )))) ;) (expression_statement "dVar64 = SQRT(dVar53);" (assignment_expression "dVar64 = SQRT(dVar53)" identifier = (call_expression "SQRT(dVar53)" identifier (argument_list "(dVar53)" ( identifier )))) ;) (if_statement "if (dVar53 < 0.0) {\n          (**(code **)(puVar36 + 0x304770))();\n        }" if (parenthesized_expression "(dVar53 < 0.0)" ( (binary_expression "dVar53 < 0.0" identifier < number_literal) )) (compound_statement "{\n          (**(code **)(puVar36 + 0x304770))();\n        }" { (expression_statement "(**(code **)(puVar36 + 0x304770))();" (call_expression "(**(code **)(puVar36 + 0x304770))()" (parenthesized_expression "(**(code **)(puVar36 + 0x304770))" ( (pointer_expression "**(code **)(puVar36 + 0x304770)" * (pointer_expression "*(code **)(puVar36 + 0x304770)" * (cast_expression "(code **)(puVar36 + 0x304770)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304770)" ( (binary_expression "puVar36 + 0x304770" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "dVar61 = dVar61 * dVar64;" (assignment_expression "dVar61 = dVar61 * dVar64" identifier = (binary_expression "dVar61 * dVar64" identifier * identifier)) ;) (expression_statement "pdVar11 = pdVar6 + iVar38 * 5;" (assignment_expression "pdVar11 = pdVar6 + iVar38 * 5" identifier = (binary_expression "pdVar6 + iVar38 * 5" identifier + (binary_expression "iVar38 * 5" identifier * number_literal))) ;) (expression_statement "dVar58 = *pdVar11;" (assignment_expression "dVar58 = *pdVar11" identifier = (pointer_expression "*pdVar11" * identifier)) ;) (expression_statement "dVar62 = pdVar11[1];" (assignment_expression "dVar62 = pdVar11[1]" identifier = (subscript_expression "pdVar11[1]" identifier [ number_literal ])) ;) (expression_statement "dVar57 = dVar61 + pdVar6[1];" (assignment_expression "dVar57 = dVar61 + pdVar6[1]" identifier = (binary_expression "dVar61 + pdVar6[1]" identifier + (subscript_expression "pdVar6[1]" identifier [ number_literal ]))) ;) (expression_statement "dVar55 = pdVar6[1] - dVar61;" (assignment_expression "dVar55 = pdVar6[1] - dVar61" identifier = (binary_expression "pdVar6[1] - dVar61" (subscript_expression "pdVar6[1]" identifier [ number_literal ]) - identifier)) ;) (expression_statement "dVar53 = dVar64 + *pdVar6;" (assignment_expression "dVar53 = dVar64 + *pdVar6" identifier = (binary_expression "dVar64 + *pdVar6" identifier + (pointer_expression "*pdVar6" * identifier))) ;) (expression_statement "dStack_238 = dVar62 - dVar61;" (assignment_expression "dStack_238 = dVar62 - dVar61" identifier = (binary_expression "dVar62 - dVar61" identifier - identifier)) ;) (expression_statement "dStack_240 = dVar58 - dVar64;" (assignment_expression "dStack_240 = dVar58 - dVar64" identifier = (binary_expression "dVar58 - dVar64" identifier - identifier)) ;) (expression_statement "dVar56 = *pdVar6 - dVar64;" (assignment_expression "dVar56 = *pdVar6 - dVar64" identifier = (binary_expression "*pdVar6 - dVar64" (pointer_expression "*pdVar6" * identifier) - identifier)) ;) (expression_statement "dVar51 = dVar56;" (assignment_expression "dVar51 = dVar56" identifier = identifier) ;) (expression_statement "dVar50 = dVar57;" (assignment_expression "dVar50 = dVar57" identifier = identifier) ;) (expression_statement "dStack_250 = dVar64 + dVar58;" (assignment_expression "dStack_250 = dVar64 + dVar58" identifier = (binary_expression "dVar64 + dVar58" identifier + identifier)) ;) (expression_statement "dStack_248 = dVar61 + dVar62;" (assignment_expression "dStack_248 = dVar61 + dVar62" identifier = (binary_expression "dVar61 + dVar62" identifier + identifier)) ;) (if_statement "if (0.0 < dVar64 * dStack_258 - dVar61 * dStack_260) {\n          dVar51 = dVar53;\n          dVar50 = dVar55;\n          dVar53 = dVar56;\n          dVar55 = dVar57;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar64 + dVar58;\n          dStack_238 = dVar61 + dVar62;\n        }" if (parenthesized_expression "(0.0 < dVar64 * dStack_258 - dVar61 * dStack_260)" ( (binary_expression "0.0 < dVar64 * dStack_258 - dVar61 * dStack_260" number_literal < (binary_expression "dVar64 * dStack_258 - dVar61 * dStack_260" (binary_expression "dVar64 * dStack_258" identifier * identifier) - (binary_expression "dVar61 * dStack_260" identifier * identifier))) )) (compound_statement "{\n          dVar51 = dVar53;\n          dVar50 = dVar55;\n          dVar53 = dVar56;\n          dVar55 = dVar57;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar64 + dVar58;\n          dStack_238 = dVar61 + dVar62;\n        }" { (expression_statement "dVar51 = dVar53;" (assignment_expression "dVar51 = dVar53" identifier = identifier) ;) (expression_statement "dVar50 = dVar55;" (assignment_expression "dVar50 = dVar55" identifier = identifier) ;) (expression_statement "dVar53 = dVar56;" (assignment_expression "dVar53 = dVar56" identifier = identifier) ;) (expression_statement "dVar55 = dVar57;" (assignment_expression "dVar55 = dVar57" identifier = identifier) ;) (expression_statement "dStack_250 = dStack_240;" (assignment_expression "dStack_250 = dStack_240" identifier = identifier) ;) (expression_statement "dStack_248 = dStack_238;" (assignment_expression "dStack_248 = dStack_238" identifier = identifier) ;) (expression_statement "dStack_240 = dVar64 + dVar58;" (assignment_expression "dStack_240 = dVar64 + dVar58" identifier = (binary_expression "dVar64 + dVar58" identifier + identifier)) ;) (expression_statement "dStack_238 = dVar61 + dVar62;" (assignment_expression "dStack_238 = dVar61 + dVar62" identifier = (binary_expression "dVar61 + dVar62" identifier + identifier)) ;) })) (expression_statement "iVar32 = iVar38 + 1;" (assignment_expression "iVar32 = iVar38 + 1" identifier = (binary_expression "iVar38 + 1" identifier + number_literal)) ;) (expression_statement "*pdVar8 = dVar51;" (assignment_expression "*pdVar8 = dVar51" (pointer_expression "*pdVar8" * identifier) = identifier) ;) (expression_statement "pdVar8[1] = dVar55;" (assignment_expression "pdVar8[1] = dVar55" (subscript_expression "pdVar8[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*pdVar7 = dVar53;" (assignment_expression "*pdVar7 = dVar53" (pointer_expression "*pdVar7" * identifier) = identifier) ;) (expression_statement "pdVar7[1] = dVar50;" (assignment_expression "pdVar7[1] = dVar50" (subscript_expression "pdVar7[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar32 < iVar29) {\n          iVar20 = *(int *)(puVar36 + 0x303bd8);\n          iVar33 = 1;\n          iVar35 = 1;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78);\n          dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar4;\n          do {\n            dVar44 = pdVar11[6];\n            dVar47 = pdVar11[5];\n            dVar48 = dVar44 - dVar62;\n            dVar54 = dVar47 - dVar58;\n            dVar49 = dVar47 - dVar58;\n            dVar56 = dStack_238;\n            dVar57 = dStack_240;\n            dVar59 = dStack_248;\n            dVar63 = dStack_250;\n            if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar63;\n            dStack_248 = dVar59;\n            dStack_240 = dVar57;\n            dStack_238 = dVar56;\n            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;\n            pdVar11 = pdVar11 + 5;\n            iVar32 = iVar32 + 1;\n            dVar58 = pdVar6[iVar38 * 5];\n            dVar62 = (pdVar6 + iVar38 * 5)[1];\n          } while( true );\n        }" if (parenthesized_expression "(iVar32 < iVar29)" ( (binary_expression "iVar32 < iVar29" identifier < identifier) )) (compound_statement "{\n          iVar20 = *(int *)(puVar36 + 0x303bd8);\n          iVar33 = 1;\n          iVar35 = 1;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78);\n          dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar4;\n          do {\n            dVar44 = pdVar11[6];\n            dVar47 = pdVar11[5];\n            dVar48 = dVar44 - dVar62;\n            dVar54 = dVar47 - dVar58;\n            dVar49 = dVar47 - dVar58;\n            dVar56 = dStack_238;\n            dVar57 = dStack_240;\n            dVar59 = dStack_248;\n            dVar63 = dStack_250;\n            if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar63;\n            dStack_248 = dVar59;\n            dStack_240 = dVar57;\n            dStack_238 = dVar56;\n            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;\n            pdVar11 = pdVar11 + 5;\n            iVar32 = iVar32 + 1;\n            dVar58 = pdVar6[iVar38 * 5];\n            dVar62 = (pdVar6 + iVar38 * 5)[1];\n          } while( true );\n        }" { (expression_statement "iVar20 = *(int *)(puVar36 + 0x303bd8);" (assignment_expression "iVar20 = *(int *)(puVar36 + 0x303bd8)" identifier = (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) ))))) ;) (expression_statement "iVar33 = 1;" (assignment_expression "iVar33 = 1" identifier = number_literal) ;) (expression_statement "iVar35 = 1;" (assignment_expression "iVar35 = 1" identifier = number_literal) ;) (expression_statement "dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78);" (assignment_expression "dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78)" identifier = (pointer_expression "*(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78)" * (cast_expression "(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + 0x303bd0) + 0x1a78)" ( (binary_expression "*(int *)(puVar36 + 0x303bd0) + 0x1a78" (pointer_expression "*(int *)(puVar36 + 0x303bd0)" * (cast_expression "(int *)(puVar36 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd0)" ( (binary_expression "puVar36 + 0x303bd0" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8);" (assignment_expression "dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8)" identifier = (pointer_expression "*(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8)" * (cast_expression "(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + 0x303bd8) + 0x47d8)" ( (binary_expression "*(int *)(puVar36 + 0x303bd8) + 0x47d8" (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uStack_22c = uVar4;" (assignment_expression "uStack_22c = uVar4" identifier = identifier) ;) (do_statement "do {\n            dVar44 = pdVar11[6];\n            dVar47 = pdVar11[5];\n            dVar48 = dVar44 - dVar62;\n            dVar54 = dVar47 - dVar58;\n            dVar49 = dVar47 - dVar58;\n            dVar56 = dStack_238;\n            dVar57 = dStack_240;\n            dVar59 = dStack_248;\n            dVar63 = dStack_250;\n            if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar63;\n            dStack_248 = dVar59;\n            dStack_240 = dVar57;\n            dStack_238 = dVar56;\n            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;\n            pdVar11 = pdVar11 + 5;\n            iVar32 = iVar32 + 1;\n            dVar58 = pdVar6[iVar38 * 5];\n            dVar62 = (pdVar6 + iVar38 * 5)[1];\n          } while( true );" do (compound_statement "{\n            dVar44 = pdVar11[6];\n            dVar47 = pdVar11[5];\n            dVar48 = dVar44 - dVar62;\n            dVar54 = dVar47 - dVar58;\n            dVar49 = dVar47 - dVar58;\n            dVar56 = dStack_238;\n            dVar57 = dStack_240;\n            dVar59 = dStack_248;\n            dVar63 = dStack_250;\n            if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar63;\n            dStack_248 = dVar59;\n            dStack_240 = dVar57;\n            dStack_238 = dVar56;\n            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;\n            pdVar11 = pdVar11 + 5;\n            iVar32 = iVar32 + 1;\n            dVar58 = pdVar6[iVar38 * 5];\n            dVar62 = (pdVar6 + iVar38 * 5)[1];\n          }" { (expression_statement "dVar44 = pdVar11[6];" (assignment_expression "dVar44 = pdVar11[6]" identifier = (subscript_expression "pdVar11[6]" identifier [ number_literal ])) ;) (expression_statement "dVar47 = pdVar11[5];" (assignment_expression "dVar47 = pdVar11[5]" identifier = (subscript_expression "pdVar11[5]" identifier [ number_literal ])) ;) (expression_statement "dVar48 = dVar44 - dVar62;" (assignment_expression "dVar48 = dVar44 - dVar62" identifier = (binary_expression "dVar44 - dVar62" identifier - identifier)) ;) (expression_statement "dVar54 = dVar47 - dVar58;" (assignment_expression "dVar54 = dVar47 - dVar58" identifier = (binary_expression "dVar47 - dVar58" identifier - identifier)) ;) (expression_statement "dVar49 = dVar47 - dVar58;" (assignment_expression "dVar49 = dVar47 - dVar58" identifier = (binary_expression "dVar47 - dVar58" identifier - identifier)) ;) (expression_statement "dVar56 = dStack_238;" (assignment_expression "dVar56 = dStack_238" identifier = identifier) ;) (expression_statement "dVar57 = dStack_240;" (assignment_expression "dVar57 = dStack_240" identifier = identifier) ;) (expression_statement "dVar59 = dStack_248;" (assignment_expression "dVar59 = dStack_248" identifier = identifier) ;) (expression_statement "dVar63 = dStack_250;" (assignment_expression "dVar63 = dStack_250" identifier = identifier) ;) (if_statement "if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }" if (parenthesized_expression "(*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62))" ( (binary_expression "*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)" (pointer_expression "*(double *)(iVar20 + -0x2e38)" * (cast_expression "(double *)(iVar20 + -0x2e38)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + -0x2e38)" ( (binary_expression "iVar20 + -0x2e38" identifier + number_literal) )))) <= (binary_expression "dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)" (binary_expression "dVar54 * dVar54" identifier * identifier) + (binary_expression "(dVar44 - dVar62) * (dVar44 - dVar62)" (parenthesized_expression "(dVar44 - dVar62)" ( (binary_expression "dVar44 - dVar62" identifier - identifier) )) * (parenthesized_expression "(dVar44 - dVar62)" ( (binary_expression "dVar44 - dVar62" identifier - identifier) ))))) )) (compound_statement "{\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }" { (if_statement "if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }" if (parenthesized_expression "(ABS(dVar54) < *(double *)(iVar18 + 0x13f8))" ( (binary_expression "ABS(dVar54) < *(double *)(iVar18 + 0x13f8)" (call_expression "ABS(dVar54)" identifier (argument_list "(dVar54)" ( identifier ))) < (pointer_expression "*(double *)(iVar18 + 0x13f8)" * (cast_expression "(double *)(iVar18 + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x13f8)" ( (binary_expression "iVar18 + 0x13f8" identifier + number_literal) ))))) )) (compound_statement "{\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }" { (expression_statement "dVar56 = 0.0;" (assignment_expression "dVar56 = 0.0" identifier = number_literal) ;) (expression_statement "dVar57 = dVar43;" (assignment_expression "dVar57 = dVar43" identifier = identifier) ;) (if_statement "if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }" if (parenthesized_expression "(0.0 <= dVar54)" ( (binary_expression "0.0 <= dVar54" number_literal <= identifier) )) (compound_statement "{\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }" { (if_statement "if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;" if (parenthesized_expression "(0.0 <= dVar44 - dVar62)" ( (binary_expression "0.0 <= dVar44 - dVar62" number_literal <= (binary_expression "dVar44 - dVar62" identifier - identifier)) )) (goto_statement "goto LAB_000a53e0;" goto statement_identifier ;)) }) (else_clause "else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }" else (if_statement "if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }" if (parenthesized_expression "(dVar44 - dVar62 < 0.0)" ( (binary_expression "dVar44 - dVar62 < 0.0" (binary_expression "dVar44 - dVar62" identifier - identifier) < number_literal) )) (compound_statement "{\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }" { (labeled_statement "LAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);" statement_identifier : (expression_statement "dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);" (assignment_expression "dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" identifier = (pointer_expression "*(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" * (cast_expression "(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" ( (binary_expression "*(int *)(puVar36 + 0x303bd0) + 0x1a68" (pointer_expression "*(int *)(puVar36 + 0x303bd0)" * (cast_expression "(int *)(puVar36 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd0)" ( (binary_expression "puVar36 + 0x303bd0" identifier + number_literal) )))) + number_literal) ))))) ;)) (goto_statement "goto joined_r0x000a568c;" goto statement_identifier ;) })))) (expression_statement "dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);" (assignment_expression "dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0)" identifier = (pointer_expression "*(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0)" * (cast_expression "(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + 0x303bd8) + 0x47d0)" ( (binary_expression "*(int *)(puVar36 + 0x303bd8) + 0x47d0" (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }" else (if_statement "if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }" if (parenthesized_expression "(ABS(dVar48) < *(double *)(iVar18 + 0x13f8))" ( (binary_expression "ABS(dVar48) < *(double *)(iVar18 + 0x13f8)" (call_expression "ABS(dVar48)" identifier (argument_list "(dVar48)" ( identifier ))) < (pointer_expression "*(double *)(iVar18 + 0x13f8)" * (cast_expression "(double *)(iVar18 + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x13f8)" ( (binary_expression "iVar18 + 0x13f8" identifier + number_literal) ))))) )) (compound_statement "{\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }" { (expression_statement "dVar54 = 0.0;" (assignment_expression "dVar54 = 0.0" identifier = number_literal) ;) (expression_statement "dVar57 = dVar43 / dVar64;" (assignment_expression "dVar57 = dVar43 / dVar64" identifier = (binary_expression "dVar43 / dVar64" identifier / identifier)) ;) (if_statement "if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }" if (parenthesized_expression "(0.0 <= dVar44 - dVar62)" ( (binary_expression "0.0 <= dVar44 - dVar62" number_literal <= (binary_expression "dVar44 - dVar62" identifier - identifier)) )) (compound_statement "{\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }" { (expression_statement "iVar9 = *(int *)(puVar36 + 0x303bd8);" (assignment_expression "iVar9 = *(int *)(puVar36 + 0x303bd8)" identifier = (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) ))))) ;) (if_statement "if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;" if (parenthesized_expression "(dVar47 - dVar58 < 0.0)" ( (binary_expression "dVar47 - dVar58 < 0.0" (binary_expression "dVar47 - dVar58" identifier - identifier) < number_literal) )) (goto_statement "goto LAB_000a5880;" goto statement_identifier ;)) }) (else_clause "else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }" else (compound_statement "{\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }" { (expression_statement "iVar9 = *(int *)(puVar36 + 0x303bd8);" (assignment_expression "iVar9 = *(int *)(puVar36 + 0x303bd8)" identifier = (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) ))))) ;) (if_statement "if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }" if (parenthesized_expression "(0.0 <= dVar47 - dVar58)" ( (binary_expression "0.0 <= dVar47 - dVar58" number_literal <= (binary_expression "dVar47 - dVar58" identifier - identifier)) )) (compound_statement "{\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }" { (labeled_statement "LAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);" statement_identifier : (expression_statement "dVar56 = *(double *)(iVar9 + 0x47d0);" (assignment_expression "dVar56 = *(double *)(iVar9 + 0x47d0)" identifier = (pointer_expression "*(double *)(iVar9 + 0x47d0)" * (cast_expression "(double *)(iVar9 + 0x47d0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x47d0)" ( (binary_expression "iVar9 + 0x47d0" identifier + number_literal) ))))) ;)) (goto_statement "goto joined_r0x000a568c;" goto statement_identifier ;) })) }))) (expression_statement "dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);" (assignment_expression "dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" identifier = (pointer_expression "*(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" * (cast_expression "(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" ( (binary_expression "*(int *)(puVar36 + 0x303bd0) + 0x1a68" (pointer_expression "*(int *)(puVar36 + 0x303bd0)" * (cast_expression "(int *)(puVar36 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd0)" ( (binary_expression "puVar36 + 0x303bd0" identifier + number_literal) )))) + number_literal) ))))) ;) }) (else_clause "else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }" else (compound_statement "{\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }" { (expression_statement "dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);" (assignment_expression "dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58)" identifier = (binary_expression "(dVar44 - dVar62) / (dVar47 - dVar58)" (parenthesized_expression "(dVar44 - dVar62)" ( (binary_expression "dVar44 - dVar62" identifier - identifier) )) / (parenthesized_expression "(dVar47 - dVar58)" ( (binary_expression "dVar47 - dVar58" identifier - identifier) )))) ;) (expression_statement "dVar56 = dVar61 / dVar54;" (assignment_expression "dVar56 = dVar61 / dVar54" identifier = (binary_expression "dVar61 / dVar54" identifier / identifier)) ;) (expression_statement "dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));" (assignment_expression "dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438))" identifier = (binary_expression "dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438))" identifier / (parenthesized_expression "(dVar56 * dVar56 + *(double *)(iVar16 + 0x1438))" ( (binary_expression "dVar56 * dVar56 + *(double *)(iVar16 + 0x1438)" (binary_expression "dVar56 * dVar56" identifier * identifier) + (pointer_expression "*(double *)(iVar16 + 0x1438)" * (cast_expression "(double *)(iVar16 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x1438)" ( (binary_expression "iVar16 + 0x1438" identifier + number_literal) ))))) )))) ;) }))))) (labeled_statement "joined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;" statement_identifier : (expression_statement "pdVar21 = pdVar6 + iVar38 * 5;" (assignment_expression "pdVar21 = pdVar6 + iVar38 * 5" identifier = (binary_expression "pdVar6 + iVar38 * 5" identifier + (binary_expression "iVar38 * 5" identifier * number_literal))) ;)) (expression_statement "dVar59 = SQRT(dVar57);" (assignment_expression "dVar59 = SQRT(dVar57)" identifier = (call_expression "SQRT(dVar57)" identifier (argument_list "(dVar57)" ( identifier )))) ;) (if_statement "if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }" if (parenthesized_expression "(dVar57 < 0.0)" ( (binary_expression "dVar57 < 0.0" identifier < number_literal) )) (compound_statement "{\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }" { (expression_statement "(**(code **)(puVar36 + 0x304770))();" (call_expression "(**(code **)(puVar36 + 0x304770))()" (parenthesized_expression "(**(code **)(puVar36 + 0x304770))" ( (pointer_expression "**(code **)(puVar36 + 0x304770)" * (pointer_expression "*(code **)(puVar36 + 0x304770)" * (cast_expression "(code **)(puVar36 + 0x304770)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304770)" ( (binary_expression "puVar36 + 0x304770" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "dVar58 = *pdVar21;" (assignment_expression "dVar58 = *pdVar21" identifier = (pointer_expression "*pdVar21" * identifier)) ;) (expression_statement "dVar62 = pdVar21[1];" (assignment_expression "dVar62 = pdVar21[1]" identifier = (subscript_expression "pdVar21[1]" identifier [ number_literal ])) ;) (expression_statement "dVar47 = pdVar11[5];" (assignment_expression "dVar47 = pdVar11[5]" identifier = (subscript_expression "pdVar11[5]" identifier [ number_literal ])) ;) (expression_statement "dVar44 = pdVar11[6];" (assignment_expression "dVar44 = pdVar11[6]" identifier = (subscript_expression "pdVar11[6]" identifier [ number_literal ])) ;) })) (expression_statement "dVar56 = dVar56 * dVar59;" (assignment_expression "dVar56 = dVar56 * dVar59" identifier = (binary_expression "dVar56 * dVar59" identifier * identifier)) ;) (expression_statement "dStack_2a8 = dVar47 - dVar59;" (assignment_expression "dStack_2a8 = dVar47 - dVar59" identifier = (binary_expression "dVar47 - dVar59" identifier - identifier)) ;) (expression_statement "dStack_2a0 = dVar44 - dVar56;" (assignment_expression "dStack_2a0 = dVar44 - dVar56" identifier = (binary_expression "dVar44 - dVar56" identifier - identifier)) ;) (expression_statement "dStack_278 = dVar58 - dVar59;" (assignment_expression "dStack_278 = dVar58 - dVar59" identifier = (binary_expression "dVar58 - dVar59" identifier - identifier)) ;) (expression_statement "dStack_270 = dVar62 - dVar56;" (assignment_expression "dStack_270 = dVar62 - dVar56" identifier = (binary_expression "dVar62 - dVar56" identifier - identifier)) ;) (expression_statement "dStack_2b8 = dVar59 + dVar47;" (assignment_expression "dStack_2b8 = dVar59 + dVar47" identifier = (binary_expression "dVar59 + dVar47" identifier + identifier)) ;) (expression_statement "dStack_2b0 = dVar56 + dVar44;" (assignment_expression "dStack_2b0 = dVar56 + dVar44" identifier = (binary_expression "dVar56 + dVar44" identifier + identifier)) ;) (expression_statement "dStack_288 = dVar59 + dVar58;" (assignment_expression "dStack_288 = dVar59 + dVar58" identifier = (binary_expression "dVar59 + dVar58" identifier + identifier)) ;) (expression_statement "dStack_280 = dVar56 + dVar62;" (assignment_expression "dStack_280 = dVar56 + dVar62" identifier = (binary_expression "dVar56 + dVar62" identifier + identifier)) ;) (if_statement "if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }" if (parenthesized_expression "(0.0 < dVar48 * dVar59 - dVar49 * dVar56)" ( (binary_expression "0.0 < dVar48 * dVar59 - dVar49 * dVar56" number_literal < (binary_expression "dVar48 * dVar59 - dVar49 * dVar56" (binary_expression "dVar48 * dVar59" identifier * identifier) - (binary_expression "dVar49 * dVar56" identifier * identifier))) )) (compound_statement "{\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }" { (expression_statement "dStack_2b8 = dStack_2a8;" (assignment_expression "dStack_2b8 = dStack_2a8" identifier = identifier) ;) (expression_statement "dStack_2b0 = dStack_2a0;" (assignment_expression "dStack_2b0 = dStack_2a0" identifier = identifier) ;) (expression_statement "dStack_2a8 = dVar59 + dVar47;" (assignment_expression "dStack_2a8 = dVar59 + dVar47" identifier = (binary_expression "dVar59 + dVar47" identifier + identifier)) ;) (expression_statement "dStack_2a0 = dVar56 + dVar44;" (assignment_expression "dStack_2a0 = dVar56 + dVar44" identifier = (binary_expression "dVar56 + dVar44" identifier + identifier)) ;) (expression_statement "dStack_288 = dStack_278;" (assignment_expression "dStack_288 = dStack_278" identifier = identifier) ;) (expression_statement "dStack_280 = dStack_270;" (assignment_expression "dStack_280 = dStack_270" identifier = identifier) ;) (expression_statement "dStack_278 = dVar59 + dVar58;" (assignment_expression "dStack_278 = dVar59 + dVar58" identifier = (binary_expression "dVar59 + dVar58" identifier + identifier)) ;) (expression_statement "dStack_270 = dVar56 + dVar62;" (assignment_expression "dStack_270 = dVar56 + dVar62" identifier = (binary_expression "dVar56 + dVar62" identifier + identifier)) ;) })) (expression_statement "dVar56 = dVar52 - dVar54;" (assignment_expression "dVar56 = dVar52 - dVar54" identifier = (binary_expression "dVar52 - dVar54" identifier - identifier)) ;) (expression_statement "dVar58 = dStack_250;" (assignment_expression "dVar58 = dStack_250" identifier = identifier) ;) (expression_statement "dVar62 = dStack_248;" (assignment_expression "dVar62 = dStack_248" identifier = identifier) ;) (expression_statement "dVar44 = dStack_238;" (assignment_expression "dVar44 = dStack_238" identifier = identifier) ;) (expression_statement "dVar47 = dStack_240;" (assignment_expression "dVar47 = dStack_240" identifier = identifier) ;) (if_statement "if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }" if (parenthesized_expression "(*(double *)(iVar18 + 0x13f8) <= ABS(dVar56))" ( (binary_expression "*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)" (pointer_expression "*(double *)(iVar18 + 0x13f8)" * (cast_expression "(double *)(iVar18 + 0x13f8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x13f8)" ( (binary_expression "iVar18 + 0x13f8" identifier + number_literal) )))) <= (call_expression "ABS(dVar56)" identifier (argument_list "(dVar56)" ( identifier )))) )) (compound_statement "{\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }" { (expression_statement "dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;" (assignment_expression "dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56" identifier = (binary_expression "(((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56" (parenthesized_expression "(((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0)" ( (binary_expression "((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0" (parenthesized_expression "((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8)" ( (binary_expression "(dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8" (parenthesized_expression "(dVar53 * dVar52 - dVar50)" ( (binary_expression "dVar53 * dVar52 - dVar50" (binary_expression "dVar53 * dVar52" identifier * identifier) - identifier) )) - (binary_expression "dVar54 * dStack_2b8" identifier * identifier)) )) + identifier) )) / identifier)) ;) (expression_statement "dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;" (assignment_expression "dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56" identifier = (binary_expression "(((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56" (parenthesized_expression "(((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0)" ( (binary_expression "((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0" (parenthesized_expression "((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8)" ( (binary_expression "(dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8" (parenthesized_expression "(dVar52 * dVar51 - dVar55)" ( (binary_expression "dVar52 * dVar51 - dVar55" (binary_expression "dVar52 * dVar51" identifier * identifier) - identifier) )) - (binary_expression "dVar54 * dStack_2a8" identifier * identifier)) )) + identifier) )) / identifier)) ;) (expression_statement "dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;" (assignment_expression "dVar62 = (dVar58 - dVar53) * dVar52 + dVar50" identifier = (binary_expression "(dVar58 - dVar53) * dVar52 + dVar50" (binary_expression "(dVar58 - dVar53) * dVar52" (parenthesized_expression "(dVar58 - dVar53)" ( (binary_expression "dVar58 - dVar53" identifier - identifier) )) * identifier) + identifier)) ;) (expression_statement "dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;" (assignment_expression "dVar44 = (dVar47 - dVar51) * dVar52 + dVar55" identifier = (binary_expression "(dVar47 - dVar51) * dVar52 + dVar55" (binary_expression "(dVar47 - dVar51) * dVar52" (parenthesized_expression "(dVar47 - dVar51)" ( (binary_expression "dVar47 - dVar51" identifier - identifier) )) * identifier) + identifier)) ;) })) (if_statement "if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }" if (parenthesized_expression "((int)uStack_22c <= iVar35 + 0x618)" ( (binary_expression "(int)uStack_22c <= iVar35 + 0x618" (cast_expression "(int)uStack_22c" ( (type_descriptor "int" primitive_type) ) identifier) <= (binary_expression "iVar35 + 0x618" identifier + number_literal)) )) (compound_statement "{\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }" { (if_statement "if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }" if (parenthesized_expression "(uStack_22c < 0xfffff9e8)" ( (binary_expression "uStack_22c < 0xfffff9e8" identifier < number_literal) )) (compound_statement "{\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }" { (expression_statement "pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);" (assignment_expression "pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10)" identifier = (cast_expression "(double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10)" (parenthesized_expression "(**(code **)(puVar36 + 0x304710))" ( (pointer_expression "**(code **)(puVar36 + 0x304710)" * (pointer_expression "*(code **)(puVar36 + 0x304710)" * (cast_expression "(code **)(puVar36 + 0x304710)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304710)" ( (binary_expression "puVar36 + 0x304710" identifier + number_literal) ))))) )) (argument_list "(pdVar7,uStack_22c + 0xc30,0x10)" ( identifier , (binary_expression "uStack_22c + 0xc30" identifier + number_literal) , number_literal ))))) ;) (expression_statement "uStack_22c = uStack_22c + 0x618;" (assignment_expression "uStack_22c = uStack_22c + 0x618" identifier = (binary_expression "uStack_22c + 0x618" identifier + number_literal)) ;) }) (else_clause "else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }" else (compound_statement "{\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }" { (expression_statement "pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);" (assignment_expression "pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7)" identifier = (cast_expression "(double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar7)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar36 + 0x3042b0)" * (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar7)" ( identifier ))))) ;) }))) })) (if_statement "if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }" if (parenthesized_expression "(iVar33 + 0x618 < (int)uVar4)" ( (binary_expression "iVar33 + 0x618 < (int)uVar4" (binary_expression "iVar33 + 0x618" identifier + number_literal) < (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }" { (if_statement "if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }" if (parenthesized_expression "(pdVar7 == (double *)0x0)" ( (binary_expression "pdVar7 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }" { (labeled_statement "LAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);" statement_identifier : (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar8);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar8)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar36 + 0x3042b0)" * (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar8)" ( identifier ))) ;)) (labeled_statement "LAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);" statement_identifier : (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042b0);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042b0)" identifier = (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_000a5714;" goto statement_identifier ;) })) }) (else_clause "else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }" else (compound_statement "{\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }" { (if_statement "if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }" if (parenthesized_expression "(0xfffff9e7 < uVar4)" ( (binary_expression "0xfffff9e7 < uVar4" number_literal < identifier) )) (compound_statement "{\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }" { (expression_statement "pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);" (assignment_expression "pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8)" identifier = (cast_expression "(double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar8)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar36 + 0x3042b0)" * (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar8)" ( identifier ))))) ;) (if_statement "if (pdVar7 != (double *)0x0) goto LAB_000a5594;" if (parenthesized_expression "(pdVar7 != (double *)0x0)" ( (binary_expression "pdVar7 != (double *)0x0" identifier != (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000a5594;" goto statement_identifier ;)) (labeled_statement "LAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;" statement_identifier : (if_statement "if (pdVar8 != (double *)0x0) goto LAB_000a5700;" if (parenthesized_expression "(pdVar8 != (double *)0x0)" ( (binary_expression "pdVar8 != (double *)0x0" identifier != (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000a5700;" goto statement_identifier ;))) (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042b0);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042b0)" identifier = (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000a5714:\n                  (*pcVar37)(pdVar6);" statement_identifier : (expression_statement "(*pcVar37)(pdVar6);" (call_expression "(*pcVar37)(pdVar6)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(pdVar6)" ( identifier ))) ;)) (expression_statement "uVar26 = 0x1d17;" (assignment_expression "uVar26 = 0x1d17" identifier = number_literal) ;) (goto_statement "goto LAB_000a5724;" goto statement_identifier ;) })) (expression_statement "pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);" (assignment_expression "pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10)" identifier = (cast_expression "(double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10)" (parenthesized_expression "(**(code **)(puVar36 + 0x304710))" ( (pointer_expression "**(code **)(puVar36 + 0x304710)" * (pointer_expression "*(code **)(puVar36 + 0x304710)" * (cast_expression "(code **)(puVar36 + 0x304710)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304710)" ( (binary_expression "puVar36 + 0x304710" identifier + number_literal) ))))) )) (argument_list "(pdVar8,uVar4 + 0xc30,0x10)" ( identifier , (binary_expression "uVar4 + 0xc30" identifier + number_literal) , number_literal ))))) ;) (expression_statement "uVar4 = uVar4 + 0x618;" (assignment_expression "uVar4 = uVar4 + 0x618" identifier = (binary_expression "uVar4 + 0x618" identifier + number_literal)) ;) (if_statement "if (pdVar7 == (double *)0x0) goto LAB_000a598c;" if (parenthesized_expression "(pdVar7 == (double *)0x0)" ( (binary_expression "pdVar7 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000a598c;" goto statement_identifier ;)) (labeled_statement "LAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }" statement_identifier : (if_statement "if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }" if (parenthesized_expression "(pdVar8 == (double *)0x0)" ( (binary_expression "pdVar8 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }" { (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar7);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar7)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar36 + 0x3042b0)" * (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar7)" ( identifier ))) ;) (goto_statement "goto LAB_000a5710;" goto statement_identifier ;) }))) }))) (expression_statement "iVar9 = *(int *)(param_2 + 0x248);" (assignment_expression "iVar9 = *(int *)(param_2 + 0x248)" identifier = (pointer_expression "*(int *)(param_2 + 0x248)" * (cast_expression "(int *)(param_2 + 0x248)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x248)" ( (binary_expression "param_2 + 0x248" identifier + number_literal) ))))) ;) (expression_statement "dVar51 = dStack_278;" (assignment_expression "dVar51 = dStack_278" identifier = identifier) ;) (expression_statement "dVar50 = dStack_280;" (assignment_expression "dVar50 = dStack_280" identifier = identifier) ;) (expression_statement "dVar53 = dStack_288;" (assignment_expression "dVar53 = dStack_288" identifier = identifier) ;) (expression_statement "dVar55 = dStack_270;" (assignment_expression "dVar55 = dStack_270" identifier = identifier) ;) (expression_statement "iVar38 = iVar32;" (assignment_expression "iVar38 = iVar32" identifier = identifier) ;) (expression_statement "dVar52 = dVar54;" (assignment_expression "dVar52 = dVar54" identifier = identifier) ;) (if_statement "if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }" if (parenthesized_expression "(dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0)" ( (binary_expression "dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0" (binary_expression "dVar49 * dStack_258 - dVar48 * dStack_260" (binary_expression "dVar49 * dStack_258" identifier * identifier) - (binary_expression "dVar48 * dStack_260" identifier * identifier)) <= number_literal) )) (compound_statement "{\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }" { (if_statement "if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }" if (parenthesized_expression "(iVar9 != 2)" ( (binary_expression "iVar9 != 2" identifier != number_literal) )) (compound_statement "{\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }" { (if_statement "if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }" if (parenthesized_expression "(iVar9 == 3)" ( (binary_expression "iVar9 == 3" identifier == number_literal) )) (compound_statement "{\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }" { (expression_statement "pdVar21 = pdVar7 + iVar35 * 2;" (assignment_expression "pdVar21 = pdVar7 + iVar35 * 2" identifier = (binary_expression "pdVar7 + iVar35 * 2" identifier + (binary_expression "iVar35 * 2" identifier * number_literal))) ;) (expression_statement "pdVar8[iVar33 * 2] = dStack_240;" (assignment_expression "pdVar8[iVar33 * 2] = dStack_240" (subscript_expression "pdVar8[iVar33 * 2]" identifier [ (binary_expression "iVar33 * 2" identifier * number_literal) ]) = identifier) ;) (expression_statement "(pdVar8 + iVar33 * 2)[1] = dStack_238;" (assignment_expression "(pdVar8 + iVar33 * 2)[1] = dStack_238" (subscript_expression "(pdVar8 + iVar33 * 2)[1]" (parenthesized_expression "(pdVar8 + iVar33 * 2)" ( (binary_expression "pdVar8 + iVar33 * 2" identifier + (binary_expression "iVar33 * 2" identifier * number_literal)) )) [ number_literal ]) = identifier) ;) (expression_statement "pdVar8[iVar33 * 2 + 2] = dStack_278;" (assignment_expression "pdVar8[iVar33 * 2 + 2] = dStack_278" (subscript_expression "pdVar8[iVar33 * 2 + 2]" identifier [ (binary_expression "iVar33 * 2 + 2" (binary_expression "iVar33 * 2" identifier * number_literal) + number_literal) ]) = identifier) ;) (expression_statement "(pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;" (assignment_expression "(pdVar8 + iVar33 * 2 + 2)[1] = dStack_270" (subscript_expression "(pdVar8 + iVar33 * 2 + 2)[1]" (parenthesized_expression "(pdVar8 + iVar33 * 2 + 2)" ( (binary_expression "pdVar8 + iVar33 * 2 + 2" (binary_expression "pdVar8 + iVar33 * 2" identifier + (binary_expression "iVar33 * 2" identifier * number_literal)) + number_literal) )) [ number_literal ]) = identifier) ;) (if_statement "if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }" if (parenthesized_expression "((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46)" ( (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46" (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62)" (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58)" (parenthesized_expression "(dVar47 - dVar58)" ( (binary_expression "dVar47 - dVar58" identifier - identifier) )) * (parenthesized_expression "(dVar47 - dVar58)" ( (binary_expression "dVar47 - dVar58" identifier - identifier) ))) + (binary_expression "(dVar44 - dVar62) * (dVar44 - dVar62)" (parenthesized_expression "(dVar44 - dVar62)" ( (binary_expression "dVar44 - dVar62" identifier - identifier) )) * (parenthesized_expression "(dVar44 - dVar62)" ( (binary_expression "dVar44 - dVar62" identifier - identifier) )))) <= identifier) )) (compound_statement "{\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }" { (expression_statement "*pdVar21 = dVar58;" (assignment_expression "*pdVar21 = dVar58" (pointer_expression "*pdVar21" * identifier) = identifier) ;) (expression_statement "pdVar21[1] = dVar62;" (assignment_expression "pdVar21[1] = dVar62" (subscript_expression "pdVar21[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "dStack_258 = dVar48;" (assignment_expression "dStack_258 = dVar48" identifier = identifier) ;) (expression_statement "dStack_260 = dVar49;" (assignment_expression "dStack_260 = dVar49" identifier = identifier) ;) (expression_statement "dVar56 = dStack_2a0;" (assignment_expression "dVar56 = dStack_2a0" identifier = identifier) ;) (expression_statement "dVar57 = dStack_2a8;" (assignment_expression "dVar57 = dStack_2a8" identifier = identifier) ;) (expression_statement "dVar59 = dStack_2b0;" (assignment_expression "dVar59 = dStack_2b0" identifier = identifier) ;) (expression_statement "dVar63 = dStack_2b8;" (assignment_expression "dVar63 = dStack_2b8" identifier = identifier) ;) (expression_statement "iVar33 = iVar33 + 2;" (assignment_expression "iVar33 = iVar33 + 2" identifier = (binary_expression "iVar33 + 2" identifier + number_literal)) ;) (expression_statement "iVar35 = iVar35 + 1;" (assignment_expression "iVar35 = iVar35 + 1" identifier = (binary_expression "iVar35 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }" else (compound_statement "{\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }" { (expression_statement "*pdVar21 = dStack_250;" (assignment_expression "*pdVar21 = dStack_250" (pointer_expression "*pdVar21" * identifier) = identifier) ;) (expression_statement "pdVar21[1] = dStack_248;" (assignment_expression "pdVar21[1] = dStack_248" (subscript_expression "pdVar21[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pdVar7[iVar35 * 2 + 2] = dStack_288;" (assignment_expression "pdVar7[iVar35 * 2 + 2] = dStack_288" (subscript_expression "pdVar7[iVar35 * 2 + 2]" identifier [ (binary_expression "iVar35 * 2 + 2" (binary_expression "iVar35 * 2" identifier * number_literal) + number_literal) ]) = identifier) ;) (expression_statement "(pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;" (assignment_expression "(pdVar7 + iVar35 * 2 + 2)[1] = dStack_280" (subscript_expression "(pdVar7 + iVar35 * 2 + 2)[1]" (parenthesized_expression "(pdVar7 + iVar35 * 2 + 2)" ( (binary_expression "pdVar7 + iVar35 * 2 + 2" (binary_expression "pdVar7 + iVar35 * 2" identifier + (binary_expression "iVar35 * 2" identifier * number_literal)) + number_literal) )) [ number_literal ]) = identifier) ;) (expression_statement "dStack_258 = dVar48;" (assignment_expression "dStack_258 = dVar48" identifier = identifier) ;) (expression_statement "dStack_260 = dVar49;" (assignment_expression "dStack_260 = dVar49" identifier = identifier) ;) (expression_statement "dVar56 = dStack_2a0;" (assignment_expression "dVar56 = dStack_2a0" identifier = identifier) ;) (expression_statement "dVar57 = dStack_2a8;" (assignment_expression "dVar57 = dStack_2a8" identifier = identifier) ;) (expression_statement "dVar59 = dStack_2b0;" (assignment_expression "dVar59 = dStack_2b0" identifier = identifier) ;) (expression_statement "dVar63 = dStack_2b8;" (assignment_expression "dVar63 = dStack_2b8" identifier = identifier) ;) (expression_statement "iVar33 = iVar33 + 2;" (assignment_expression "iVar33 = iVar33 + 2" identifier = (binary_expression "iVar33 + 2" identifier + number_literal)) ;) (expression_statement "iVar35 = iVar35 + 2;" (assignment_expression "iVar35 = iVar35 + 2" identifier = (binary_expression "iVar35 + 2" identifier + number_literal)) ;) }))) }) (else_clause "else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }" else (compound_statement "{\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }" { (expression_statement "dStack_258 = dVar48;" (assignment_expression "dStack_258 = dVar48" identifier = identifier) ;) (expression_statement "dStack_260 = dVar49;" (assignment_expression "dStack_260 = dVar49" identifier = identifier) ;) (expression_statement "dVar56 = dStack_2a0;" (assignment_expression "dVar56 = dStack_2a0" identifier = identifier) ;) (expression_statement "dVar57 = dStack_2a8;" (assignment_expression "dVar57 = dStack_2a8" identifier = identifier) ;) (expression_statement "dVar59 = dStack_2b0;" (assignment_expression "dVar59 = dStack_2b0" identifier = identifier) ;) (expression_statement "dVar63 = dStack_2b8;" (assignment_expression "dVar63 = dStack_2b8" identifier = identifier) ;) (if_statement "if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }" if (parenthesized_expression "(iVar9 == 1)" ( (binary_expression "iVar9 == 1" identifier == number_literal) )) (compound_statement "{\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }" { (expression_statement "pdVar21 = pdVar7 + iVar35 * 2;" (assignment_expression "pdVar21 = pdVar7 + iVar35 * 2" identifier = (binary_expression "pdVar7 + iVar35 * 2" identifier + (binary_expression "iVar35 * 2" identifier * number_literal))) ;) (expression_statement "pdVar31 = pdVar8 + iVar33 * 2;" (assignment_expression "pdVar31 = pdVar8 + iVar33 * 2" identifier = (binary_expression "pdVar8 + iVar33 * 2" identifier + (binary_expression "iVar33 * 2" identifier * number_literal))) ;) (if_statement "if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;" if (parenthesized_expression "(dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62))" ( (binary_expression "dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)" identifier < (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)" (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58)" (parenthesized_expression "(dVar47 - dVar58)" ( (binary_expression "dVar47 - dVar58" identifier - identifier) )) * (parenthesized_expression "(dVar47 - dVar58)" ( (binary_expression "dVar47 - dVar58" identifier - identifier) ))) + (binary_expression "(dVar44 - dVar62) * (dVar44 - dVar62)" (parenthesized_expression "(dVar44 - dVar62)" ( (binary_expression "dVar44 - dVar62" identifier - identifier) )) * (parenthesized_expression "(dVar44 - dVar62)" ( (binary_expression "dVar44 - dVar62" identifier - identifier) ))))) )) (goto_statement "goto LAB_000a607c;" goto statement_identifier ;)) (labeled_statement "LAB_000a58dc:\n                      iVar33 = iVar33 + 1;" statement_identifier : (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;)) (expression_statement "iVar35 = iVar35 + 1;" (assignment_expression "iVar35 = iVar35 + 1" identifier = (binary_expression "iVar35 + 1" identifier + number_literal)) ;) (expression_statement "*pdVar31 = dVar47;" (assignment_expression "*pdVar31 = dVar47" (pointer_expression "*pdVar31" * identifier) = identifier) ;) (expression_statement "pdVar31[1] = dVar44;" (assignment_expression "pdVar31[1] = dVar44" (subscript_expression "pdVar31[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*pdVar21 = dVar58;" (assignment_expression "*pdVar21 = dVar58" (pointer_expression "*pdVar21" * identifier) = identifier) ;) (expression_statement "pdVar21[1] = dVar62;" (assignment_expression "pdVar21[1] = dVar62" (subscript_expression "pdVar21[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "dStack_258 = dVar48;" (assignment_expression "dStack_258 = dVar48" identifier = identifier) ;) (expression_statement "dStack_260 = dVar49;" (assignment_expression "dStack_260 = dVar49" identifier = identifier) ;) (expression_statement "dVar56 = dStack_2a0;" (assignment_expression "dVar56 = dStack_2a0" identifier = identifier) ;) (expression_statement "dVar57 = dStack_2a8;" (assignment_expression "dVar57 = dStack_2a8" identifier = identifier) ;) (expression_statement "dVar59 = dStack_2b0;" (assignment_expression "dVar59 = dStack_2b0" identifier = identifier) ;) (expression_statement "dVar63 = dStack_2b8;" (assignment_expression "dVar63 = dStack_2b8" identifier = identifier) ;) })) }))) (goto_statement "goto joined_r0x000a5a50;" goto statement_identifier ;) })) (expression_statement "iVar9 = iVar35 + 1;" (assignment_expression "iVar9 = iVar35 + 1" identifier = (binary_expression "iVar35 + 1" identifier + number_literal)) ;) (expression_statement "pdVar31 = pdVar7 + iVar35 * 2;" (assignment_expression "pdVar31 = pdVar7 + iVar35 * 2" identifier = (binary_expression "pdVar7 + iVar35 * 2" identifier + (binary_expression "iVar35 * 2" identifier * number_literal))) ;) (if_statement "if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }" if (parenthesized_expression "((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46)" ( (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46" (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62)" (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58)" (parenthesized_expression "(dVar47 - dVar58)" ( (binary_expression "dVar47 - dVar58" identifier - identifier) )) * (parenthesized_expression "(dVar47 - dVar58)" ( (binary_expression "dVar47 - dVar58" identifier - identifier) ))) + (binary_expression "(dVar44 - dVar62) * (dVar44 - dVar62)" (parenthesized_expression "(dVar44 - dVar62)" ( (binary_expression "dVar44 - dVar62" identifier - identifier) )) * (parenthesized_expression "(dVar44 - dVar62)" ( (binary_expression "dVar44 - dVar62" identifier - identifier) )))) <= identifier) )) (compound_statement "{\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }" { (expression_statement "*pdVar31 = dVar58;" (assignment_expression "*pdVar31 = dVar58" (pointer_expression "*pdVar31" * identifier) = identifier) ;) (expression_statement "pdVar31[1] = dVar62;" (assignment_expression "pdVar31[1] = dVar62" (subscript_expression "pdVar31[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }" else (compound_statement "{\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }" { (expression_statement "iVar9 = iVar35 + 2;" (assignment_expression "iVar9 = iVar35 + 2" identifier = (binary_expression "iVar35 + 2" identifier + number_literal)) ;) (expression_statement "*pdVar31 = dStack_250;" (assignment_expression "*pdVar31 = dStack_250" (pointer_expression "*pdVar31" * identifier) = identifier) ;) (expression_statement "pdVar31[1] = dStack_248;" (assignment_expression "pdVar31[1] = dStack_248" (subscript_expression "pdVar31[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pdVar7[iVar35 * 2 + 2] = dStack_288;" (assignment_expression "pdVar7[iVar35 * 2 + 2] = dStack_288" (subscript_expression "pdVar7[iVar35 * 2 + 2]" identifier [ (binary_expression "iVar35 * 2 + 2" (binary_expression "iVar35 * 2" identifier * number_literal) + number_literal) ]) = identifier) ;) (expression_statement "(pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;" (assignment_expression "(pdVar7 + iVar35 * 2 + 2)[1] = dStack_280" (subscript_expression "(pdVar7 + iVar35 * 2 + 2)[1]" (parenthesized_expression "(pdVar7 + iVar35 * 2 + 2)" ( (binary_expression "pdVar7 + iVar35 * 2 + 2" (binary_expression "pdVar7 + iVar35 * 2" identifier + (binary_expression "iVar35 * 2" identifier * number_literal)) + number_literal) )) [ number_literal ]) = identifier) ;) }))) (expression_statement "dVar58 = *pdVar21;" (assignment_expression "dVar58 = *pdVar21" identifier = (pointer_expression "*pdVar21" * identifier)) ;) (expression_statement "dVar57 = pdVar21[1];" (assignment_expression "dVar57 = pdVar21[1]" identifier = (subscript_expression "pdVar21[1]" identifier [ number_literal ])) ;) (expression_statement "dVar52 = dVar57;" (assignment_expression "dVar52 = dVar57" identifier = identifier) ;) (expression_statement "dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);" (assignment_expression "dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58)" identifier = (cast_expression "(double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042f8))" ( (pointer_expression "**(code **)(puVar36 + 0x3042f8)" * (pointer_expression "*(code **)(puVar36 + 0x3042f8)" * (cast_expression "(code **)(puVar36 + 0x3042f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042f8)" ( (binary_expression "puVar36 + 0x3042f8" identifier + number_literal) ))))) )) (argument_list "(dStack_238 - dVar57,dStack_240 - dVar58)" ( (binary_expression "dStack_238 - dVar57" identifier - identifier) , (binary_expression "dStack_240 - dVar58" identifier - identifier) ))))) ;) (expression_statement "dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);" (assignment_expression "dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58)" identifier = (cast_expression "(double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042f8))" ( (pointer_expression "**(code **)(puVar36 + 0x3042f8)" * (pointer_expression "*(code **)(puVar36 + 0x3042f8)" * (cast_expression "(code **)(puVar36 + 0x3042f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042f8)" ( (binary_expression "puVar36 + 0x3042f8" identifier + number_literal) ))))) )) (argument_list "(dStack_270 - dVar52,dStack_278 - dVar58)" ( (binary_expression "dStack_270 - dVar52" identifier - identifier) , (binary_expression "dStack_278 - dVar58" identifier - identifier) ))))) ;) (if_statement "if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }" if (parenthesized_expression "(dVar52 < dVar56)" ( (binary_expression "dVar52 < dVar56" identifier < identifier) )) (compound_statement "{\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }" { (expression_statement "dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);" (assignment_expression "dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0)" identifier = (binary_expression "dVar52 + *(double *)(iVar19 + 0x34a0)" identifier + (pointer_expression "*(double *)(iVar19 + 0x34a0)" * (cast_expression "(double *)(iVar19 + 0x34a0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x34a0)" ( (binary_expression "iVar19 + 0x34a0" identifier + number_literal) )))))) ;) })) (expression_statement "dVar52 = dVar52 - dVar56;" (assignment_expression "dVar52 = dVar52 - dVar56" identifier = (binary_expression "dVar52 - dVar56" identifier - identifier)) ;) (expression_statement "dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;" (assignment_expression "dVar62 = *(double *)(iVar16 + 0x1438) / dVar42" identifier = (binary_expression "*(double *)(iVar16 + 0x1438) / dVar42" (pointer_expression "*(double *)(iVar16 + 0x1438)" * (cast_expression "(double *)(iVar16 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x1438)" ( (binary_expression "iVar16 + 0x1438" identifier + number_literal) )))) / identifier)) ;) (expression_statement "dVar59 = SQRT(dVar62);" (assignment_expression "dVar59 = SQRT(dVar62)" identifier = (call_expression "SQRT(dVar62)" identifier (argument_list "(dVar62)" ( identifier )))) ;) (if_statement "if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }" if (parenthesized_expression "(dVar62 < 0.0)" ( (binary_expression "dVar62 < 0.0" identifier < number_literal) )) (compound_statement "{\n                  (**(code **)(puVar36 + 0x304770))();\n                }" { (expression_statement "(**(code **)(puVar36 + 0x304770))();" (call_expression "(**(code **)(puVar36 + 0x304770))()" (parenthesized_expression "(**(code **)(puVar36 + 0x304770))" ( (pointer_expression "**(code **)(puVar36 + 0x304770)" * (pointer_expression "*(code **)(puVar36 + 0x304770)" * (cast_expression "(code **)(puVar36 + 0x304770)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304770)" ( (binary_expression "puVar36 + 0x304770" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));" (assignment_expression "dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59))" identifier = (cast_expression "(double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59))" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59))" (parenthesized_expression "(**(code **)(puVar36 + 0x303f10))" ( (pointer_expression "**(code **)(puVar36 + 0x303f10)" * (pointer_expression "*(code **)(puVar36 + 0x303f10)" * (cast_expression "(code **)(puVar36 + 0x303f10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x303f10)" ( (binary_expression "puVar36 + 0x303f10" identifier + number_literal) ))))) )) (argument_list "(dVar52 / (dVar59 + dVar59))" ( (binary_expression "dVar52 / (dVar59 + dVar59)" identifier / (parenthesized_expression "(dVar59 + dVar59)" ( (binary_expression "dVar59 + dVar59" identifier + identifier) ))) ))))) ;) (expression_statement "dVar59 = *(double *)(iVar15 + 0x1410);" (assignment_expression "dVar59 = *(double *)(iVar15 + 0x1410)" identifier = (pointer_expression "*(double *)(iVar15 + 0x1410)" * (cast_expression "(double *)(iVar15 + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x1410)" ( (binary_expression "iVar15 + 0x1410" identifier + number_literal) ))))) ;) (if_statement "if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }" if (parenthesized_expression "(dVar62 < dVar59)" ( (binary_expression "dVar62 < dVar59" identifier < identifier) )) (compound_statement "{\n                  uVar14 = (uint)dVar62;\n                }" { (expression_statement "uVar14 = (uint)dVar62;" (assignment_expression "uVar14 = (uint)dVar62" identifier = (cast_expression "(uint)dVar62" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }" else (compound_statement "{\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }" { (expression_statement "uVar14 = (int)(dVar62 - dVar59) | 0x80000000;" (assignment_expression "uVar14 = (int)(dVar62 - dVar59) | 0x80000000" identifier = (binary_expression "(int)(dVar62 - dVar59) | 0x80000000" (cast_expression "(int)(dVar62 - dVar59)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar62 - dVar59)" ( (binary_expression "dVar62 - dVar59" identifier - identifier) ))) | number_literal)) ;) }))) (if_statement "if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }" if (parenthesized_expression "((int)uStack_22c <= iVar9 + 0x618)" ( (binary_expression "(int)uStack_22c <= iVar9 + 0x618" (cast_expression "(int)uStack_22c" ( (type_descriptor "int" primitive_type) ) identifier) <= (binary_expression "iVar9 + 0x618" identifier + number_literal)) )) (compound_statement "{\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }" { (if_statement "if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }" if (parenthesized_expression "(uStack_22c < 0xfffff9e8)" ( (binary_expression "uStack_22c < 0xfffff9e8" identifier < number_literal) )) (compound_statement "{\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }" { (expression_statement "iVar35 = uStack_22c + 0xc30;" (assignment_expression "iVar35 = uStack_22c + 0xc30" identifier = (binary_expression "uStack_22c + 0xc30" identifier + number_literal)) ;) (expression_statement "uStack_22c = uStack_22c + 0x618;" (assignment_expression "uStack_22c = uStack_22c + 0x618" identifier = (binary_expression "uStack_22c + 0x618" identifier + number_literal)) ;) (expression_statement "pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);" (assignment_expression "pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10)" identifier = (cast_expression "(double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10)" (parenthesized_expression "(**(code **)(puVar36 + 0x304710))" ( (pointer_expression "**(code **)(puVar36 + 0x304710)" * (pointer_expression "*(code **)(puVar36 + 0x304710)" * (cast_expression "(code **)(puVar36 + 0x304710)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304710)" ( (binary_expression "puVar36 + 0x304710" identifier + number_literal) ))))) )) (argument_list "(pdVar7,iVar35,0x10)" ( identifier , identifier , number_literal ))))) ;) }) (else_clause "else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }" else (compound_statement "{\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }" { (expression_statement "pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);" (assignment_expression "pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7)" identifier = (cast_expression "(double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar7)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar36 + 0x3042b0)" * (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar7)" ( identifier ))))) ;) }))) })) (if_statement "if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }" if (parenthesized_expression "(uVar14 + 0x618 < 0x4000001)" ( (binary_expression "uVar14 + 0x618 < 0x4000001" (binary_expression "uVar14 + 0x618" identifier + number_literal) < number_literal) )) (compound_statement "{\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }" { (if_statement "if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }" if (parenthesized_expression "((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14))" ( (binary_expression "(int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)(iVar33 + 0x618 + uVar14)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar33 + 0x618 + uVar14)" ( (binary_expression "iVar33 + 0x618 + uVar14" (binary_expression "iVar33 + 0x618" identifier + number_literal) + identifier) )))) )) (compound_statement "{\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }" { (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042b0);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042b0)" identifier = (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) ;) (if_statement "if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;" if (parenthesized_expression "(~uVar4 < uVar14 + 0x618)" ( (binary_expression "~uVar4 < uVar14 + 0x618" (unary_expression "~uVar4" ~ identifier) < (binary_expression "uVar14 + 0x618" identifier + number_literal)) )) (goto_statement "goto LAB_000a67d4;" goto statement_identifier ;)) (expression_statement "iVar35 = uVar14 + uVar4;" (assignment_expression "iVar35 = uVar14 + uVar4" identifier = (binary_expression "uVar14 + uVar4" identifier + identifier)) ;) (expression_statement "uVar4 = iVar35 + 0x618;" (assignment_expression "uVar4 = iVar35 + 0x618" identifier = (binary_expression "iVar35 + 0x618" identifier + number_literal)) ;) (expression_statement "pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;" (assignment_expression "pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)" identifier = (cast_expression "(double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)" (parenthesized_expression "(**(code **)(puVar36 + 0x304710))" ( (pointer_expression "**(code **)(puVar36 + 0x304710)" * (pointer_expression "*(code **)(puVar36 + 0x304710)" * (cast_expression "(code **)(puVar36 + 0x304710)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304710)" ( (binary_expression "puVar36 + 0x304710" identifier + number_literal) ))))) )) (argument_list "(pdVar8,iVar35 + 0xc30,0x10)" ( identifier , (binary_expression "iVar35 + 0xc30" identifier + number_literal) , number_literal ))))) ;) (goto_statement "goto LAB_000a64c4;" goto statement_identifier ;) })) (if_statement "if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }" if (parenthesized_expression "(pdVar7 == (double *)0x0)" ( (binary_expression "pdVar7 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }" { (labeled_statement "LAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);" statement_identifier : (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar8);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar8)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar36 + 0x3042b0)" * (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar8)" ( identifier ))) ;)) (labeled_statement "LAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);" statement_identifier : (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042b0);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042b0)" identifier = (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_000a6d30;" goto statement_identifier ;) })) }) (else_clause "else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }" else (compound_statement "{\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }" { (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042b0);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042b0)" identifier = (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);" statement_identifier : (expression_statement "pdVar8 = (double *)(*pcVar37)(pdVar8);" (assignment_expression "pdVar8 = (double *)(*pcVar37)(pdVar8)" identifier = (cast_expression "(double *)(*pcVar37)(pdVar8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar37)(pdVar8)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(pdVar8)" ( identifier ))))) ;)) (labeled_statement "LAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }" statement_identifier : (if_statement "if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }" if (parenthesized_expression "(pdVar7 == (double *)0x0)" ( (binary_expression "pdVar7 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }" { (if_statement "if (pdVar8 != (double *)0x0) goto LAB_000a6884;" if (parenthesized_expression "(pdVar8 != (double *)0x0)" ( (binary_expression "pdVar8 != (double *)0x0" identifier != (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000a6884;" goto statement_identifier ;)) (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042b0);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042b0)" identifier = (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000a6d30:\n                    (*pcVar37)(pdVar6);" statement_identifier : (expression_statement "(*pcVar37)(pdVar6);" (call_expression "(*pcVar37)(pdVar6)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(pdVar6)" ( identifier ))) ;)) (expression_statement "uVar26 = 0x1d4f;" (assignment_expression "uVar26 = 0x1d4f" identifier = number_literal) ;) (goto_statement "goto LAB_000a5724;" goto statement_identifier ;) }))) (if_statement "if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }" if (parenthesized_expression "(pdVar8 == (double *)0x0)" ( (binary_expression "pdVar8 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }" { (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar7);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar7)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar36 + 0x3042b0)" * (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar7)" ( identifier ))) ;) (goto_statement "goto LAB_000a6d2c;" goto statement_identifier ;) })) }))) (expression_statement "pdVar21 = pdVar8 + iVar33 * 2;" (assignment_expression "pdVar21 = pdVar8 + iVar33 * 2" identifier = (binary_expression "pdVar8 + iVar33 * 2" identifier + (binary_expression "iVar33 * 2" identifier * number_literal))) ;) (expression_statement "*pdVar21 = dStack_240;" (assignment_expression "*pdVar21 = dStack_240" (pointer_expression "*pdVar21" * identifier) = identifier) ;) (expression_statement "pdVar21[1] = dStack_238;" (assignment_expression "pdVar21[1] = dStack_238" (subscript_expression "pdVar21[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }" if (parenthesized_expression "(1 < (int)uVar14)" ( (binary_expression "1 < (int)uVar14" number_literal < (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }" { (expression_statement "uVar60 = *(undefined8 *)(iVar19 + 0x34a0);" (assignment_expression "uVar60 = *(undefined8 *)(iVar19 + 0x34a0)" identifier = (pointer_expression "*(undefined8 *)(iVar19 + 0x34a0)" * (cast_expression "(undefined8 *)(iVar19 + 0x34a0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x34a0)" ( (binary_expression "iVar19 + 0x34a0" identifier + number_literal) ))))) ;) (expression_statement "uVar30 = 1;" (assignment_expression "uVar30 = 1" identifier = number_literal) ;) (do_statement "do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);" do (compound_statement "{\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  }" { (expression_statement "uVar34 = uVar30 + 1;" (assignment_expression "uVar34 = uVar30 + 1" identifier = (binary_expression "uVar30 + 1" identifier + number_literal)) ;) (expression_statement "dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;" (assignment_expression "dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56" identifier = (binary_expression "((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56" (binary_expression "((double)(int)uVar30 * dVar52) / (double)(int)uVar14" (parenthesized_expression "((double)(int)uVar30 * dVar52)" ( (binary_expression "(double)(int)uVar30 * dVar52" (cast_expression "(double)(int)uVar30" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)uVar30" ( (type_descriptor "int" primitive_type) ) identifier)) * identifier) )) / (cast_expression "(double)(int)uVar14" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier))) + identifier)) ;) (expression_statement "uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);" (assignment_expression "uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60)" identifier = (call_expression "(**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60)" (parenthesized_expression "(**(code **)(puVar36 + 0x304ca8))" ( (pointer_expression "**(code **)(puVar36 + 0x304ca8)" * (pointer_expression "*(code **)(puVar36 + 0x304ca8)" * (cast_expression "(code **)(puVar36 + 0x304ca8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304ca8)" ( (binary_expression "puVar36 + 0x304ca8" identifier + number_literal) ))))) )) (argument_list "(dVar59,uVar60)" ( identifier , identifier )))) ;) (expression_statement "dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);" (assignment_expression "dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45)" identifier = (cast_expression "(double)(**(code **)(puVar36 + 0x304608))(uVar45)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar36 + 0x304608))(uVar45)" (parenthesized_expression "(**(code **)(puVar36 + 0x304608))" ( (pointer_expression "**(code **)(puVar36 + 0x304608)" * (pointer_expression "*(code **)(puVar36 + 0x304608)" * (cast_expression "(code **)(puVar36 + 0x304608)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304608)" ( (binary_expression "puVar36 + 0x304608" identifier + number_literal) ))))) )) (argument_list "(uVar45)" ( identifier ))))) ;) (expression_statement "pcVar37 = *(code **)(puVar36 + 0x304ca8);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x304ca8)" identifier = (pointer_expression "*(code **)(puVar36 + 0x304ca8)" * (cast_expression "(code **)(puVar36 + 0x304ca8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304ca8)" ( (binary_expression "puVar36 + 0x304ca8" identifier + number_literal) ))))) ;) (expression_statement "pdVar21[2] = dVar42 * dVar62 + dVar58;" (assignment_expression "pdVar21[2] = dVar42 * dVar62 + dVar58" (subscript_expression "pdVar21[2]" identifier [ number_literal ]) = (binary_expression "dVar42 * dVar62 + dVar58" (binary_expression "dVar42 * dVar62" identifier * identifier) + identifier)) ;) (expression_statement "uVar45 = (*pcVar37)(dVar59,uVar60);" (assignment_expression "uVar45 = (*pcVar37)(dVar59,uVar60)" identifier = (call_expression "(*pcVar37)(dVar59,uVar60)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(dVar59,uVar60)" ( identifier , identifier )))) ;) (expression_statement "dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);" (assignment_expression "dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45)" identifier = (cast_expression "(double)(**(code **)(puVar36 + 0x304034))(uVar45)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar36 + 0x304034))(uVar45)" (parenthesized_expression "(**(code **)(puVar36 + 0x304034))" ( (pointer_expression "**(code **)(puVar36 + 0x304034)" * (pointer_expression "*(code **)(puVar36 + 0x304034)" * (cast_expression "(code **)(puVar36 + 0x304034)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304034)" ( (binary_expression "puVar36 + 0x304034" identifier + number_literal) ))))) )) (argument_list "(uVar45)" ( identifier ))))) ;) (expression_statement "pdVar21[3] = dVar42 * dVar62 + dVar57;" (assignment_expression "pdVar21[3] = dVar42 * dVar62 + dVar57" (subscript_expression "pdVar21[3]" identifier [ number_literal ]) = (binary_expression "dVar42 * dVar62 + dVar57" (binary_expression "dVar42 * dVar62" identifier * identifier) + identifier)) ;) (expression_statement "uVar30 = uVar34;" (assignment_expression "uVar30 = uVar34" identifier = identifier) ;) (expression_statement "pdVar21 = pdVar21 + 2;" (assignment_expression "pdVar21 = pdVar21 + 2" identifier = (binary_expression "pdVar21 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar34 != uVar14)" ( (binary_expression "uVar34 != uVar14" identifier != identifier) )) ;) })) (expression_statement "*pdVar8 = dStack_278;" (assignment_expression "*pdVar8 = dStack_278" (pointer_expression "*pdVar8" * identifier) = identifier) ;) (expression_statement "pdVar8[1] = dStack_270;" (assignment_expression "pdVar8[1] = dStack_270" (subscript_expression "pdVar8[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "dStack_258 = dVar48;" (assignment_expression "dStack_258 = dVar48" identifier = identifier) ;) (expression_statement "dStack_260 = dVar49;" (assignment_expression "dStack_260 = dVar49" identifier = identifier) ;) (expression_statement "dVar56 = dStack_2a0;" (assignment_expression "dVar56 = dStack_2a0" identifier = identifier) ;) (expression_statement "dVar57 = dStack_2a8;" (assignment_expression "dVar57 = dStack_2a8" identifier = identifier) ;) (expression_statement "dVar59 = dStack_2b0;" (assignment_expression "dVar59 = dStack_2b0" identifier = identifier) ;) (expression_statement "dVar63 = dStack_2b8;" (assignment_expression "dVar63 = dStack_2b8" identifier = identifier) ;) (expression_statement "iVar33 = 1;" (assignment_expression "iVar33 = 1" identifier = number_literal) ;) (expression_statement "iVar35 = iVar9;" (assignment_expression "iVar35 = iVar9" identifier = identifier) ;) (expression_statement "dVar52 = dVar54;" (assignment_expression "dVar52 = dVar54" identifier = identifier) ;) }) (else_clause "else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }" else (compound_statement "{\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }" { (if_statement "if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }" if (parenthesized_expression "(iVar9 != 2)" ( (binary_expression "iVar9 != 2" identifier != number_literal) )) (compound_statement "{\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }" { (if_statement "if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }" if (parenthesized_expression "(iVar9 == 3)" ( (binary_expression "iVar9 == 3" identifier == number_literal) )) (compound_statement "{\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }" { (expression_statement "iVar9 = iVar35 * 2;" (assignment_expression "iVar9 = iVar35 * 2" identifier = (binary_expression "iVar35 * 2" identifier * number_literal)) ;) (expression_statement "iVar3 = iVar35 * 2;" (assignment_expression "iVar3 = iVar35 * 2" identifier = (binary_expression "iVar35 * 2" identifier * number_literal)) ;) (expression_statement "iVar35 = iVar35 + 2;" (assignment_expression "iVar35 = iVar35 + 2" identifier = (binary_expression "iVar35 + 2" identifier + number_literal)) ;) (expression_statement "pdVar7[iVar9] = dStack_250;" (assignment_expression "pdVar7[iVar9] = dStack_250" (subscript_expression "pdVar7[iVar9]" identifier [ identifier ]) = identifier) ;) (expression_statement "(pdVar7 + iVar9)[1] = dStack_248;" (assignment_expression "(pdVar7 + iVar9)[1] = dStack_248" (subscript_expression "(pdVar7 + iVar9)[1]" (parenthesized_expression "(pdVar7 + iVar9)" ( (binary_expression "pdVar7 + iVar9" identifier + identifier) )) [ number_literal ]) = identifier) ;) (expression_statement "pdVar21 = pdVar8 + iVar33 * 2;" (assignment_expression "pdVar21 = pdVar8 + iVar33 * 2" identifier = (binary_expression "pdVar8 + iVar33 * 2" identifier + (binary_expression "iVar33 * 2" identifier * number_literal))) ;) (expression_statement "pdVar7[iVar3 + 2] = dStack_288;" (assignment_expression "pdVar7[iVar3 + 2] = dStack_288" (subscript_expression "pdVar7[iVar3 + 2]" identifier [ (binary_expression "iVar3 + 2" identifier + number_literal) ]) = identifier) ;) (expression_statement "(pdVar7 + iVar3 + 2)[1] = dStack_280;" (assignment_expression "(pdVar7 + iVar3 + 2)[1] = dStack_280" (subscript_expression "(pdVar7 + iVar3 + 2)[1]" (parenthesized_expression "(pdVar7 + iVar3 + 2)" ( (binary_expression "pdVar7 + iVar3 + 2" (binary_expression "pdVar7 + iVar3" identifier + identifier) + number_literal) )) [ number_literal ]) = identifier) ;) (if_statement "if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }" if (parenthesized_expression "((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46)" ( (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46" (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62)" (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58)" (parenthesized_expression "(dVar47 - dVar58)" ( (binary_expression "dVar47 - dVar58" identifier - identifier) )) * (parenthesized_expression "(dVar47 - dVar58)" ( (binary_expression "dVar47 - dVar58" identifier - identifier) ))) + (binary_expression "(dVar44 - dVar62) * (dVar44 - dVar62)" (parenthesized_expression "(dVar44 - dVar62)" ( (binary_expression "dVar44 - dVar62" identifier - identifier) )) * (parenthesized_expression "(dVar44 - dVar62)" ( (binary_expression "dVar44 - dVar62" identifier - identifier) )))) <= identifier) )) (compound_statement "{\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }" { (expression_statement "*pdVar21 = dVar47;" (assignment_expression "*pdVar21 = dVar47" (pointer_expression "*pdVar21" * identifier) = identifier) ;) (expression_statement "pdVar21[1] = dVar44;" (assignment_expression "pdVar21[1] = dVar44" (subscript_expression "pdVar21[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "dStack_258 = dVar48;" (assignment_expression "dStack_258 = dVar48" identifier = identifier) ;) (expression_statement "dStack_260 = dVar49;" (assignment_expression "dStack_260 = dVar49" identifier = identifier) ;) (expression_statement "dVar56 = dStack_2a0;" (assignment_expression "dVar56 = dStack_2a0" identifier = identifier) ;) (expression_statement "dVar57 = dStack_2a8;" (assignment_expression "dVar57 = dStack_2a8" identifier = identifier) ;) (expression_statement "dVar59 = dStack_2b0;" (assignment_expression "dVar59 = dStack_2b0" identifier = identifier) ;) (expression_statement "dVar63 = dStack_2b8;" (assignment_expression "dVar63 = dStack_2b8" identifier = identifier) ;) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }" else (compound_statement "{\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }" { (expression_statement "*pdVar21 = dStack_240;" (assignment_expression "*pdVar21 = dStack_240" (pointer_expression "*pdVar21" * identifier) = identifier) ;) (expression_statement "pdVar21[1] = dStack_238;" (assignment_expression "pdVar21[1] = dStack_238" (subscript_expression "pdVar21[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pdVar8[iVar33 * 2 + 2] = dStack_278;" (assignment_expression "pdVar8[iVar33 * 2 + 2] = dStack_278" (subscript_expression "pdVar8[iVar33 * 2 + 2]" identifier [ (binary_expression "iVar33 * 2 + 2" (binary_expression "iVar33 * 2" identifier * number_literal) + number_literal) ]) = identifier) ;) (expression_statement "(pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;" (assignment_expression "(pdVar8 + iVar33 * 2 + 2)[1] = dStack_270" (subscript_expression "(pdVar8 + iVar33 * 2 + 2)[1]" (parenthesized_expression "(pdVar8 + iVar33 * 2 + 2)" ( (binary_expression "pdVar8 + iVar33 * 2 + 2" (binary_expression "pdVar8 + iVar33 * 2" identifier + (binary_expression "iVar33 * 2" identifier * number_literal)) + number_literal) )) [ number_literal ]) = identifier) ;) (expression_statement "dStack_258 = dVar48;" (assignment_expression "dStack_258 = dVar48" identifier = identifier) ;) (expression_statement "dStack_260 = dVar49;" (assignment_expression "dStack_260 = dVar49" identifier = identifier) ;) (expression_statement "dVar56 = dStack_2a0;" (assignment_expression "dVar56 = dStack_2a0" identifier = identifier) ;) (expression_statement "dVar57 = dStack_2a8;" (assignment_expression "dVar57 = dStack_2a8" identifier = identifier) ;) (expression_statement "dVar59 = dStack_2b0;" (assignment_expression "dVar59 = dStack_2b0" identifier = identifier) ;) (expression_statement "dVar63 = dStack_2b8;" (assignment_expression "dVar63 = dStack_2b8" identifier = identifier) ;) (expression_statement "iVar33 = iVar33 + 2;" (assignment_expression "iVar33 = iVar33 + 2" identifier = (binary_expression "iVar33 + 2" identifier + number_literal)) ;) }))) }) (else_clause "else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }" else (compound_statement "{\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }" { (expression_statement "dStack_258 = dVar48;" (assignment_expression "dStack_258 = dVar48" identifier = identifier) ;) (expression_statement "dStack_260 = dVar49;" (assignment_expression "dStack_260 = dVar49" identifier = identifier) ;) (expression_statement "dVar56 = dStack_2a0;" (assignment_expression "dVar56 = dStack_2a0" identifier = identifier) ;) (expression_statement "dVar57 = dStack_2a8;" (assignment_expression "dVar57 = dStack_2a8" identifier = identifier) ;) (expression_statement "dVar59 = dStack_2b0;" (assignment_expression "dVar59 = dStack_2b0" identifier = identifier) ;) (expression_statement "dVar63 = dStack_2b8;" (assignment_expression "dVar63 = dStack_2b8" identifier = identifier) ;) (if_statement "if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }" if (parenthesized_expression "(iVar9 == 1)" ( (binary_expression "iVar9 == 1" identifier == number_literal) )) (compound_statement "{\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }" { (expression_statement "pdVar21 = pdVar7 + iVar35 * 2;" (assignment_expression "pdVar21 = pdVar7 + iVar35 * 2" identifier = (binary_expression "pdVar7 + iVar35 * 2" identifier + (binary_expression "iVar35 * 2" identifier * number_literal))) ;) (expression_statement "pdVar31 = pdVar8 + iVar33 * 2;" (assignment_expression "pdVar31 = pdVar8 + iVar33 * 2" identifier = (binary_expression "pdVar8 + iVar33 * 2" identifier + (binary_expression "iVar33 * 2" identifier * number_literal))) ;) (if_statement "if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;" if (parenthesized_expression "((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46)" ( (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46" (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62)" (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58)" (parenthesized_expression "(dVar47 - dVar58)" ( (binary_expression "dVar47 - dVar58" identifier - identifier) )) * (parenthesized_expression "(dVar47 - dVar58)" ( (binary_expression "dVar47 - dVar58" identifier - identifier) ))) + (binary_expression "(dVar44 - dVar62) * (dVar44 - dVar62)" (parenthesized_expression "(dVar44 - dVar62)" ( (binary_expression "dVar44 - dVar62" identifier - identifier) )) * (parenthesized_expression "(dVar44 - dVar62)" ( (binary_expression "dVar44 - dVar62" identifier - identifier) )))) <= identifier) )) (goto_statement "goto LAB_000a58dc;" goto statement_identifier ;)) (labeled_statement "LAB_000a607c:\n                      *pdVar31 = dStack_240;" statement_identifier : (expression_statement "*pdVar31 = dStack_240;" (assignment_expression "*pdVar31 = dStack_240" (pointer_expression "*pdVar31" * identifier) = identifier) ;)) (expression_statement "pdVar31[1] = dStack_238;" (assignment_expression "pdVar31[1] = dStack_238" (subscript_expression "pdVar31[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pdVar8[iVar33 * 2 + 2] = dStack_278;" (assignment_expression "pdVar8[iVar33 * 2 + 2] = dStack_278" (subscript_expression "pdVar8[iVar33 * 2 + 2]" identifier [ (binary_expression "iVar33 * 2 + 2" (binary_expression "iVar33 * 2" identifier * number_literal) + number_literal) ]) = identifier) ;) (expression_statement "(pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;" (assignment_expression "(pdVar8 + iVar33 * 2 + 2)[1] = dStack_270" (subscript_expression "(pdVar8 + iVar33 * 2 + 2)[1]" (parenthesized_expression "(pdVar8 + iVar33 * 2 + 2)" ( (binary_expression "pdVar8 + iVar33 * 2 + 2" (binary_expression "pdVar8 + iVar33 * 2" identifier + (binary_expression "iVar33 * 2" identifier * number_literal)) + number_literal) )) [ number_literal ]) = identifier) ;) (expression_statement "*pdVar21 = dStack_250;" (assignment_expression "*pdVar21 = dStack_250" (pointer_expression "*pdVar21" * identifier) = identifier) ;) (expression_statement "pdVar21[1] = dStack_248;" (assignment_expression "pdVar21[1] = dStack_248" (subscript_expression "pdVar21[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pdVar7[iVar35 * 2 + 2] = dStack_288;" (assignment_expression "pdVar7[iVar35 * 2 + 2] = dStack_288" (subscript_expression "pdVar7[iVar35 * 2 + 2]" identifier [ (binary_expression "iVar35 * 2 + 2" (binary_expression "iVar35 * 2" identifier * number_literal) + number_literal) ]) = identifier) ;) (expression_statement "(pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;" (assignment_expression "(pdVar7 + iVar35 * 2 + 2)[1] = dStack_280" (subscript_expression "(pdVar7 + iVar35 * 2 + 2)[1]" (parenthesized_expression "(pdVar7 + iVar35 * 2 + 2)" ( (binary_expression "pdVar7 + iVar35 * 2 + 2" (binary_expression "pdVar7 + iVar35 * 2" identifier + (binary_expression "iVar35 * 2" identifier * number_literal)) + number_literal) )) [ number_literal ]) = identifier) ;) (expression_statement "dStack_258 = dVar48;" (assignment_expression "dStack_258 = dVar48" identifier = identifier) ;) (expression_statement "dStack_260 = dVar49;" (assignment_expression "dStack_260 = dVar49" identifier = identifier) ;) (expression_statement "dVar56 = dStack_2a0;" (assignment_expression "dVar56 = dStack_2a0" identifier = identifier) ;) (expression_statement "dVar57 = dStack_2a8;" (assignment_expression "dVar57 = dStack_2a8" identifier = identifier) ;) (expression_statement "dVar59 = dStack_2b0;" (assignment_expression "dVar59 = dStack_2b0" identifier = identifier) ;) (expression_statement "dVar63 = dStack_2b8;" (assignment_expression "dVar63 = dStack_2b8" identifier = identifier) ;) (expression_statement "iVar33 = iVar33 + 2;" (assignment_expression "iVar33 = iVar33 + 2" identifier = (binary_expression "iVar33 + 2" identifier + number_literal)) ;) (expression_statement "iVar35 = iVar35 + 2;" (assignment_expression "iVar35 = iVar35 + 2" identifier = (binary_expression "iVar35 + 2" identifier + number_literal)) ;) })) }))) (goto_statement "goto joined_r0x000a5a50;" goto statement_identifier ;) })) (expression_statement "iVar9 = iVar33 + 1;" (assignment_expression "iVar9 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "pdVar31 = pdVar8 + iVar33 * 2;" (assignment_expression "pdVar31 = pdVar8 + iVar33 * 2" identifier = (binary_expression "pdVar8 + iVar33 * 2" identifier + (binary_expression "iVar33 * 2" identifier * number_literal))) ;) (if_statement "if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }" if (parenthesized_expression "((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46)" ( (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46" (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62)" (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58)" (parenthesized_expression "(dVar47 - dVar58)" ( (binary_expression "dVar47 - dVar58" identifier - identifier) )) * (parenthesized_expression "(dVar47 - dVar58)" ( (binary_expression "dVar47 - dVar58" identifier - identifier) ))) + (binary_expression "(dVar44 - dVar62) * (dVar44 - dVar62)" (parenthesized_expression "(dVar44 - dVar62)" ( (binary_expression "dVar44 - dVar62" identifier - identifier) )) * (parenthesized_expression "(dVar44 - dVar62)" ( (binary_expression "dVar44 - dVar62" identifier - identifier) )))) <= identifier) )) (compound_statement "{\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }" { (expression_statement "*pdVar31 = dVar47;" (assignment_expression "*pdVar31 = dVar47" (pointer_expression "*pdVar31" * identifier) = identifier) ;) (expression_statement "pdVar31[1] = dVar44;" (assignment_expression "pdVar31[1] = dVar44" (subscript_expression "pdVar31[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }" else (compound_statement "{\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }" { (expression_statement "iVar9 = iVar33 + 2;" (assignment_expression "iVar9 = iVar33 + 2" identifier = (binary_expression "iVar33 + 2" identifier + number_literal)) ;) (expression_statement "*pdVar31 = dStack_240;" (assignment_expression "*pdVar31 = dStack_240" (pointer_expression "*pdVar31" * identifier) = identifier) ;) (expression_statement "pdVar31[1] = dStack_238;" (assignment_expression "pdVar31[1] = dStack_238" (subscript_expression "pdVar31[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pdVar8[iVar33 * 2 + 2] = dStack_278;" (assignment_expression "pdVar8[iVar33 * 2 + 2] = dStack_278" (subscript_expression "pdVar8[iVar33 * 2 + 2]" identifier [ (binary_expression "iVar33 * 2 + 2" (binary_expression "iVar33 * 2" identifier * number_literal) + number_literal) ]) = identifier) ;) (expression_statement "(pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;" (assignment_expression "(pdVar8 + iVar33 * 2 + 2)[1] = dStack_270" (subscript_expression "(pdVar8 + iVar33 * 2 + 2)[1]" (parenthesized_expression "(pdVar8 + iVar33 * 2 + 2)" ( (binary_expression "pdVar8 + iVar33 * 2 + 2" (binary_expression "pdVar8 + iVar33 * 2" identifier + (binary_expression "iVar33 * 2" identifier * number_literal)) + number_literal) )) [ number_literal ]) = identifier) ;) }))) (expression_statement "dVar57 = *pdVar21;" (assignment_expression "dVar57 = *pdVar21" identifier = (pointer_expression "*pdVar21" * identifier)) ;) (expression_statement "dVar58 = pdVar21[1];" (assignment_expression "dVar58 = pdVar21[1]" identifier = (subscript_expression "pdVar21[1]" identifier [ number_literal ])) ;) (expression_statement "dVar52 = dVar57;" (assignment_expression "dVar52 = dVar57" identifier = identifier) ;) (expression_statement "dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);" (assignment_expression "dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57)" identifier = (cast_expression "(double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042f8))" ( (pointer_expression "**(code **)(puVar36 + 0x3042f8)" * (pointer_expression "*(code **)(puVar36 + 0x3042f8)" * (cast_expression "(code **)(puVar36 + 0x3042f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042f8)" ( (binary_expression "puVar36 + 0x3042f8" identifier + number_literal) ))))) )) (argument_list "(dStack_248 - dVar58,dStack_250 - dVar57)" ( (binary_expression "dStack_248 - dVar58" identifier - identifier) , (binary_expression "dStack_250 - dVar57" identifier - identifier) ))))) ;) (expression_statement "dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);" (assignment_expression "dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52)" identifier = (cast_expression "(double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042f8))" ( (pointer_expression "**(code **)(puVar36 + 0x3042f8)" * (pointer_expression "*(code **)(puVar36 + 0x3042f8)" * (cast_expression "(code **)(puVar36 + 0x3042f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042f8)" ( (binary_expression "puVar36 + 0x3042f8" identifier + number_literal) ))))) )) (argument_list "(dStack_280 - dVar58,dStack_288 - dVar52)" ( (binary_expression "dStack_280 - dVar58" identifier - identifier) , (binary_expression "dStack_288 - dVar52" identifier - identifier) ))))) ;) (if_statement "if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }" if (parenthesized_expression "(dVar56 < dVar52)" ( (binary_expression "dVar56 < dVar52" identifier < identifier) )) (compound_statement "{\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }" { (expression_statement "dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);" (assignment_expression "dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0)" identifier = (binary_expression "dVar56 + *(double *)(iVar19 + 0x34a0)" identifier + (pointer_expression "*(double *)(iVar19 + 0x34a0)" * (cast_expression "(double *)(iVar19 + 0x34a0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x34a0)" ( (binary_expression "iVar19 + 0x34a0" identifier + number_literal) )))))) ;) })) (expression_statement "dVar62 = dVar56 - dVar52;" (assignment_expression "dVar62 = dVar56 - dVar52" identifier = (binary_expression "dVar56 - dVar52" identifier - identifier)) ;) (expression_statement "dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;" (assignment_expression "dVar59 = *(double *)(iVar16 + 0x1438) / dVar42" identifier = (binary_expression "*(double *)(iVar16 + 0x1438) / dVar42" (pointer_expression "*(double *)(iVar16 + 0x1438)" * (cast_expression "(double *)(iVar16 + 0x1438)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x1438)" ( (binary_expression "iVar16 + 0x1438" identifier + number_literal) )))) / identifier)) ;) (expression_statement "dVar63 = SQRT(dVar59);" (assignment_expression "dVar63 = SQRT(dVar59)" identifier = (call_expression "SQRT(dVar59)" identifier (argument_list "(dVar59)" ( identifier )))) ;) (if_statement "if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }" if (parenthesized_expression "(dVar59 < 0.0)" ( (binary_expression "dVar59 < 0.0" identifier < number_literal) )) (compound_statement "{\n                  (**(code **)(puVar36 + 0x304770))();\n                }" { (expression_statement "(**(code **)(puVar36 + 0x304770))();" (call_expression "(**(code **)(puVar36 + 0x304770))()" (parenthesized_expression "(**(code **)(puVar36 + 0x304770))" ( (pointer_expression "**(code **)(puVar36 + 0x304770)" * (pointer_expression "*(code **)(puVar36 + 0x304770)" * (cast_expression "(code **)(puVar36 + 0x304770)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304770)" ( (binary_expression "puVar36 + 0x304770" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) })) (expression_statement "dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));" (assignment_expression "dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63))" identifier = (cast_expression "(double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63))" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63))" (parenthesized_expression "(**(code **)(puVar36 + 0x303f10))" ( (pointer_expression "**(code **)(puVar36 + 0x303f10)" * (pointer_expression "*(code **)(puVar36 + 0x303f10)" * (cast_expression "(code **)(puVar36 + 0x303f10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x303f10)" ( (binary_expression "puVar36 + 0x303f10" identifier + number_literal) ))))) )) (argument_list "(dVar62 / (dVar63 + dVar63))" ( (binary_expression "dVar62 / (dVar63 + dVar63)" identifier / (parenthesized_expression "(dVar63 + dVar63)" ( (binary_expression "dVar63 + dVar63" identifier + identifier) ))) ))))) ;) (if_statement "if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }" if (parenthesized_expression "(dVar62 < dVar40)" ( (binary_expression "dVar62 < dVar40" identifier < identifier) )) (compound_statement "{\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }" { (expression_statement "uVar30 = (uint)dVar62;" (assignment_expression "uVar30 = (uint)dVar62" identifier = (cast_expression "(uint)dVar62" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar14 = uVar30 + 0x618;" (assignment_expression "uVar14 = uVar30 + 0x618" identifier = (binary_expression "uVar30 + 0x618" identifier + number_literal)) ;) (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042b0);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042b0)" identifier = (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) ;) (if_statement "if (uVar14 < 0x4000001) goto LAB_000a5ec0;" if (parenthesized_expression "(uVar14 < 0x4000001)" ( (binary_expression "uVar14 < 0x4000001" identifier < number_literal) )) (goto_statement "goto LAB_000a5ec0;" goto statement_identifier ;)) (labeled_statement "LAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);" statement_identifier : (expression_statement "pdVar7 = (double *)(*pcVar37)(pdVar7);" (assignment_expression "pdVar7 = (double *)(*pcVar37)(pdVar7)" identifier = (cast_expression "(double *)(*pcVar37)(pdVar7)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar37)(pdVar7)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(pdVar7)" ( identifier ))))) ;)) }) (else_clause "else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }" else (compound_statement "{\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }" { (expression_statement "uVar30 = (int)(dVar62 - dVar40) | 0x80000000;" (assignment_expression "uVar30 = (int)(dVar62 - dVar40) | 0x80000000" identifier = (binary_expression "(int)(dVar62 - dVar40) | 0x80000000" (cast_expression "(int)(dVar62 - dVar40)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(dVar62 - dVar40)" ( (binary_expression "dVar62 - dVar40" identifier - identifier) ))) | number_literal)) ;) (expression_statement "uVar14 = uVar30 + 0x618;" (assignment_expression "uVar14 = uVar30 + 0x618" identifier = (binary_expression "uVar30 + 0x618" identifier + number_literal)) ;) (if_statement "if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }" if (parenthesized_expression "(0x4000000 < uVar14)" ( (binary_expression "0x4000000 < uVar14" number_literal < identifier) )) (compound_statement "{\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }" { (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042b0);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042b0)" identifier = (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000a66a4;" goto statement_identifier ;) })) (labeled_statement "LAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }" statement_identifier : (if_statement "if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }" if (parenthesized_expression "((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30))" ( (binary_expression "(int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)" (cast_expression "(int)uStack_22c" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)(iVar35 + 0x618 + uVar30)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar35 + 0x618 + uVar30)" ( (binary_expression "iVar35 + 0x618 + uVar30" (binary_expression "iVar35 + 0x618" identifier + number_literal) + identifier) )))) )) (compound_statement "{\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }" { (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042b0);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042b0)" identifier = (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) ;) (if_statement "if (~uStack_22c < uVar14) goto LAB_000a66a4;" if (parenthesized_expression "(~uStack_22c < uVar14)" ( (binary_expression "~uStack_22c < uVar14" (unary_expression "~uStack_22c" ~ identifier) < identifier) )) (goto_statement "goto LAB_000a66a4;" goto statement_identifier ;)) (expression_statement "iVar33 = uStack_22c + uVar30;" (assignment_expression "iVar33 = uStack_22c + uVar30" identifier = (binary_expression "uStack_22c + uVar30" identifier + identifier)) ;) (expression_statement "uStack_22c = iVar33 + 0x618;" (assignment_expression "uStack_22c = iVar33 + 0x618" identifier = (binary_expression "iVar33 + 0x618" identifier + number_literal)) ;) (expression_statement "pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;" (assignment_expression "pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)" identifier = (cast_expression "(double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)" (parenthesized_expression "(**(code **)(puVar36 + 0x304710))" ( (pointer_expression "**(code **)(puVar36 + 0x304710)" * (pointer_expression "*(code **)(puVar36 + 0x304710)" * (cast_expression "(code **)(puVar36 + 0x304710)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304710)" ( (binary_expression "puVar36 + 0x304710" identifier + number_literal) ))))) )) (argument_list "(pdVar7,iVar33 + 0xc30,0x10)" ( identifier , (binary_expression "iVar33 + 0xc30" identifier + number_literal) , number_literal ))))) ;) }))) }))) (if_statement "if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }" if (parenthesized_expression "(iVar9 + 0x618 < (int)uVar4)" ( (binary_expression "iVar9 + 0x618 < (int)uVar4" (binary_expression "iVar9 + 0x618" identifier + number_literal) < (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }" { (if_statement "if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }" if (parenthesized_expression "(pdVar7 == (double *)0x0)" ( (binary_expression "pdVar7 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }" { (labeled_statement "LAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);" statement_identifier : (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar8);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar8)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar36 + 0x3042b0)" * (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar8)" ( identifier ))) ;)) (labeled_statement "LAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);" statement_identifier : (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042b0);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042b0)" identifier = (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_000a6660;" goto statement_identifier ;) })) }) (else_clause "else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }" else (compound_statement "{\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }" { (if_statement "if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }" if (parenthesized_expression "(uVar4 < 0xfffff9e8)" ( (binary_expression "uVar4 < 0xfffff9e8" identifier < number_literal) )) (compound_statement "{\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }" { (expression_statement "pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);" (assignment_expression "pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10)" identifier = (cast_expression "(double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10)" (parenthesized_expression "(**(code **)(puVar36 + 0x304710))" ( (pointer_expression "**(code **)(puVar36 + 0x304710)" * (pointer_expression "*(code **)(puVar36 + 0x304710)" * (cast_expression "(code **)(puVar36 + 0x304710)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304710)" ( (binary_expression "puVar36 + 0x304710" identifier + number_literal) ))))) )) (argument_list "(pdVar8,uVar4 + 0xc30,0x10)" ( identifier , (binary_expression "uVar4 + 0xc30" identifier + number_literal) , number_literal ))))) ;) (expression_statement "uVar4 = uVar4 + 0x618;" (assignment_expression "uVar4 = uVar4 + 0x618" identifier = (binary_expression "uVar4 + 0x618" identifier + number_literal)) ;) }) (else_clause "else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }" else (compound_statement "{\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }" { (expression_statement "pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);" (assignment_expression "pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8)" identifier = (cast_expression "(double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar8)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar36 + 0x3042b0)" * (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar8)" ( identifier ))))) ;) }))) (if_statement "if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }" if (parenthesized_expression "(pdVar7 == (double *)0x0)" ( (binary_expression "pdVar7 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }" { (if_statement "if (pdVar8 != (double *)0x0) goto LAB_000a664c;" if (parenthesized_expression "(pdVar8 != (double *)0x0)" ( (binary_expression "pdVar8 != (double *)0x0" identifier != (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000a664c;" goto statement_identifier ;)) (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042b0);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042b0)" identifier = (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000a6660:\n                    (*pcVar37)(pdVar6);" statement_identifier : (expression_statement "(*pcVar37)(pdVar6);" (call_expression "(*pcVar37)(pdVar6)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(pdVar6)" ( identifier ))) ;)) (expression_statement "uVar26 = 0x1d98;" (assignment_expression "uVar26 = 0x1d98" identifier = number_literal) ;) (goto_statement "goto LAB_000a5724;" goto statement_identifier ;) })) (if_statement "if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }" if (parenthesized_expression "(pdVar8 == (double *)0x0)" ( (binary_expression "pdVar8 == (double *)0x0" identifier == (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }" { (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar7);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar7)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar36 + 0x3042b0)" * (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar7)" ( identifier ))) ;) (goto_statement "goto LAB_000a665c;" goto statement_identifier ;) })) }))) (expression_statement "pdVar21 = pdVar7 + iVar35 * 2;" (assignment_expression "pdVar21 = pdVar7 + iVar35 * 2" identifier = (binary_expression "pdVar7 + iVar35 * 2" identifier + (binary_expression "iVar35 * 2" identifier * number_literal))) ;) (expression_statement "*pdVar21 = dStack_250;" (assignment_expression "*pdVar21 = dStack_250" (pointer_expression "*pdVar21" * identifier) = identifier) ;) (expression_statement "pdVar21[1] = dStack_248;" (assignment_expression "pdVar21[1] = dStack_248" (subscript_expression "pdVar21[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }" if (parenthesized_expression "(1 < (int)uVar30)" ( (binary_expression "1 < (int)uVar30" number_literal < (cast_expression "(int)uVar30" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }" { (expression_statement "dVar52 = dVar52 - dVar56;" (assignment_expression "dVar52 = dVar52 - dVar56" identifier = (binary_expression "dVar52 - dVar56" identifier - identifier)) ;) (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" identifier = number_literal) ;) (do_statement "do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);" do (compound_statement "{\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  }" { (expression_statement "uVar34 = uVar14 + 1;" (assignment_expression "uVar34 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (expression_statement "dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;" (assignment_expression "dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56" identifier = (binary_expression "((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56" (binary_expression "((double)(int)uVar14 * dVar52) / (double)(int)uVar30" (parenthesized_expression "((double)(int)uVar14 * dVar52)" ( (binary_expression "(double)(int)uVar14 * dVar52" (cast_expression "(double)(int)uVar14" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier)) * identifier) )) / (cast_expression "(double)(int)uVar30" ( (type_descriptor "double" primitive_type) ) (cast_expression "(int)uVar30" ( (type_descriptor "int" primitive_type) ) identifier))) + identifier)) ;) (expression_statement "uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);" (assignment_expression "uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41)" identifier = (call_expression "(**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41)" (parenthesized_expression "(**(code **)(puVar36 + 0x304ca8))" ( (pointer_expression "**(code **)(puVar36 + 0x304ca8)" * (pointer_expression "*(code **)(puVar36 + 0x304ca8)" * (cast_expression "(code **)(puVar36 + 0x304ca8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304ca8)" ( (binary_expression "puVar36 + 0x304ca8" identifier + number_literal) ))))) )) (argument_list "(dVar59,uVar41)" ( identifier , identifier )))) ;) (expression_statement "dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);" (assignment_expression "dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60)" identifier = (cast_expression "(double)(**(code **)(puVar36 + 0x304608))(uVar60)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar36 + 0x304608))(uVar60)" (parenthesized_expression "(**(code **)(puVar36 + 0x304608))" ( (pointer_expression "**(code **)(puVar36 + 0x304608)" * (pointer_expression "*(code **)(puVar36 + 0x304608)" * (cast_expression "(code **)(puVar36 + 0x304608)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304608)" ( (binary_expression "puVar36 + 0x304608" identifier + number_literal) ))))) )) (argument_list "(uVar60)" ( identifier ))))) ;) (expression_statement "pcVar37 = *(code **)(puVar36 + 0x304ca8);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x304ca8)" identifier = (pointer_expression "*(code **)(puVar36 + 0x304ca8)" * (cast_expression "(code **)(puVar36 + 0x304ca8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304ca8)" ( (binary_expression "puVar36 + 0x304ca8" identifier + number_literal) ))))) ;) (expression_statement "pdVar21[2] = dVar42 * dVar62 + dVar57;" (assignment_expression "pdVar21[2] = dVar42 * dVar62 + dVar57" (subscript_expression "pdVar21[2]" identifier [ number_literal ]) = (binary_expression "dVar42 * dVar62 + dVar57" (binary_expression "dVar42 * dVar62" identifier * identifier) + identifier)) ;) (expression_statement "uVar60 = (*pcVar37)(dVar59,uVar41);" (assignment_expression "uVar60 = (*pcVar37)(dVar59,uVar41)" identifier = (call_expression "(*pcVar37)(dVar59,uVar41)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(dVar59,uVar41)" ( identifier , identifier )))) ;) (expression_statement "dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);" (assignment_expression "dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60)" identifier = (cast_expression "(double)(**(code **)(puVar36 + 0x304034))(uVar60)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar36 + 0x304034))(uVar60)" (parenthesized_expression "(**(code **)(puVar36 + 0x304034))" ( (pointer_expression "**(code **)(puVar36 + 0x304034)" * (pointer_expression "*(code **)(puVar36 + 0x304034)" * (cast_expression "(code **)(puVar36 + 0x304034)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304034)" ( (binary_expression "puVar36 + 0x304034" identifier + number_literal) ))))) )) (argument_list "(uVar60)" ( identifier ))))) ;) (expression_statement "pdVar21[3] = dVar42 * dVar62 + dVar58;" (assignment_expression "pdVar21[3] = dVar42 * dVar62 + dVar58" (subscript_expression "pdVar21[3]" identifier [ number_literal ]) = (binary_expression "dVar42 * dVar62 + dVar58" (binary_expression "dVar42 * dVar62" identifier * identifier) + identifier)) ;) (expression_statement "uVar14 = uVar34;" (assignment_expression "uVar14 = uVar34" identifier = identifier) ;) (expression_statement "pdVar21 = pdVar21 + 2;" (assignment_expression "pdVar21 = pdVar21 + 2" identifier = (binary_expression "pdVar21 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar34 != uVar30)" ( (binary_expression "uVar34 != uVar30" identifier != identifier) )) ;) })) (expression_statement "*pdVar7 = dStack_288;" (assignment_expression "*pdVar7 = dStack_288" (pointer_expression "*pdVar7" * identifier) = identifier) ;) (expression_statement "pdVar7[1] = dStack_280;" (assignment_expression "pdVar7[1] = dStack_280" (subscript_expression "pdVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "dStack_258 = dVar48;" (assignment_expression "dStack_258 = dVar48" identifier = identifier) ;) (expression_statement "dStack_260 = dVar49;" (assignment_expression "dStack_260 = dVar49" identifier = identifier) ;) (expression_statement "dVar56 = dStack_2a0;" (assignment_expression "dVar56 = dStack_2a0" identifier = identifier) ;) (expression_statement "dVar57 = dStack_2a8;" (assignment_expression "dVar57 = dStack_2a8" identifier = identifier) ;) (expression_statement "dVar59 = dStack_2b0;" (assignment_expression "dVar59 = dStack_2b0" identifier = identifier) ;) (expression_statement "dVar63 = dStack_2b8;" (assignment_expression "dVar63 = dStack_2b8" identifier = identifier) ;) (expression_statement "iVar33 = iVar9;" (assignment_expression "iVar33 = iVar9" identifier = identifier) ;) (expression_statement "iVar35 = 1;" (assignment_expression "iVar35 = 1" identifier = number_literal) ;) (expression_statement "dVar52 = dVar54;" (assignment_expression "dVar52 = dVar54" identifier = identifier) ;) }))) })) (labeled_statement "joined_r0x000a5a50:\n            dStack_250 = dVar63;" statement_identifier : (expression_statement "dStack_250 = dVar63;" (assignment_expression "dStack_250 = dVar63" identifier = identifier) ;)) (expression_statement "dStack_248 = dVar59;" (assignment_expression "dStack_248 = dVar59" identifier = identifier) ;) (expression_statement "dStack_240 = dVar57;" (assignment_expression "dStack_240 = dVar57" identifier = identifier) ;) (expression_statement "dStack_238 = dVar56;" (assignment_expression "dStack_238 = dVar56" identifier = identifier) ;) (if_statement "if (iVar32 + 1 == iVar29) goto LAB_000a5a58;" if (parenthesized_expression "(iVar32 + 1 == iVar29)" ( (binary_expression "iVar32 + 1 == iVar29" (binary_expression "iVar32 + 1" identifier + number_literal) == identifier) )) (goto_statement "goto LAB_000a5a58;" goto statement_identifier ;)) (expression_statement "pdVar11 = pdVar11 + 5;" (assignment_expression "pdVar11 = pdVar11 + 5" identifier = (binary_expression "pdVar11 + 5" identifier + number_literal)) ;) (expression_statement "iVar32 = iVar32 + 1;" (assignment_expression "iVar32 = iVar32 + 1" identifier = (binary_expression "iVar32 + 1" identifier + number_literal)) ;) (expression_statement "dVar58 = pdVar6[iVar38 * 5];" (assignment_expression "dVar58 = pdVar6[iVar38 * 5]" identifier = (subscript_expression "pdVar6[iVar38 * 5]" identifier [ (binary_expression "iVar38 * 5" identifier * number_literal) ])) ;) (expression_statement "dVar62 = (pdVar6 + iVar38 * 5)[1];" (assignment_expression "dVar62 = (pdVar6 + iVar38 * 5)[1]" identifier = (subscript_expression "(pdVar6 + iVar38 * 5)[1]" (parenthesized_expression "(pdVar6 + iVar38 * 5)" ( (binary_expression "pdVar6 + iVar38 * 5" identifier + (binary_expression "iVar38 * 5" identifier * number_literal)) )) [ number_literal ])) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "iVar38 = 4;" (assignment_expression "iVar38 = 4" identifier = number_literal) ;) (expression_statement "iVar32 = 0x10;" (assignment_expression "iVar32 = 0x10" identifier = number_literal) ;) (expression_statement "iVar35 = 0x10;" (assignment_expression "iVar35 = 0x10" identifier = number_literal) ;) (expression_statement "iVar29 = 2;" (assignment_expression "iVar29 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_000a5a70;" goto statement_identifier ;) })) (expression_statement "bVar1 = iVar29 < 2;" (assignment_expression "bVar1 = iVar29 < 2" identifier = (binary_expression "iVar29 < 2" identifier < number_literal)) ;) (expression_statement "iStack_188 = 0;" (assignment_expression "iStack_188 = 0" identifier = number_literal) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "*(undefined4 *)((int)pdVar7 + 0x14) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar7 + 0x14) = 0" (pointer_expression "*(undefined4 *)((int)pdVar7 + 0x14)" * (cast_expression "(undefined4 *)((int)pdVar7 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar7 + 0x14)" ( (binary_expression "(int)pdVar7 + 0x14" (cast_expression "(int)pdVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (if_statement "if (!bVar1) goto LAB_000a4fe8;" if (parenthesized_expression "(!bVar1)" ( (unary_expression "!bVar1" ! identifier) )) (goto_statement "goto LAB_000a4fe8;" goto statement_identifier ;)) (labeled_statement "LAB_000a6124:\n      if (iVar29 != 1) {\n        iVar38 = 1;\n        dStack_258 = 0.0;\n        dStack_260 = 0.0;\n        goto LAB_000a5110;\n      }" statement_identifier : (if_statement "if (iVar29 != 1) {\n        iVar38 = 1;\n        dStack_258 = 0.0;\n        dStack_260 = 0.0;\n        goto LAB_000a5110;\n      }" if (parenthesized_expression "(iVar29 != 1)" ( (binary_expression "iVar29 != 1" identifier != number_literal) )) (compound_statement "{\n        iVar38 = 1;\n        dStack_258 = 0.0;\n        dStack_260 = 0.0;\n        goto LAB_000a5110;\n      }" { (expression_statement "iVar38 = 1;" (assignment_expression "iVar38 = 1" identifier = number_literal) ;) (expression_statement "dStack_258 = 0.0;" (assignment_expression "dStack_258 = 0.0" identifier = number_literal) ;) (expression_statement "dStack_260 = 0.0;" (assignment_expression "dStack_260 = 0.0" identifier = number_literal) ;) (goto_statement "goto LAB_000a5110;" goto statement_identifier ;) }))) (expression_statement "iVar38 = 1;" (assignment_expression "iVar38 = 1" identifier = number_literal) ;) (expression_statement "dStack_258 = 0.0;" (assignment_expression "dStack_258 = 0.0" identifier = number_literal) ;) (expression_statement "iVar16 = *(int *)(param_2 + 0x244);" (assignment_expression "iVar16 = *(int *)(param_2 + 0x244)" identifier = (pointer_expression "*(int *)(param_2 + 0x244)" * (cast_expression "(int *)(param_2 + 0x244)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x244)" ( (binary_expression "param_2 + 0x244" identifier + number_literal) ))))) ;) (expression_statement "dStack_260 = 0.0;" (assignment_expression "dStack_260 = 0.0" identifier = number_literal) ;) (labeled_statement "joined_r0x000a50f8:\n      if (iVar16 == 2) {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n        if (!bVar2) {\n          iVar38 = iVar38 + -1;\n          goto LAB_000a5110;\n        }\n      }\n      else {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n      }" statement_identifier : (if_statement "if (iVar16 == 2) {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n        if (!bVar2) {\n          iVar38 = iVar38 + -1;\n          goto LAB_000a5110;\n        }\n      }\n      else {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n      }" if (parenthesized_expression "(iVar16 == 2)" ( (binary_expression "iVar16 == 2" identifier == number_literal) )) (compound_statement "{\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n        if (!bVar2) {\n          iVar38 = iVar38 + -1;\n          goto LAB_000a5110;\n        }\n      }" { (expression_statement "pcVar37 = *(code **)(puVar36 + 0x304644);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x304644)" identifier = (pointer_expression "*(code **)(puVar36 + 0x304644)" * (cast_expression "(code **)(puVar36 + 0x304644)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304644)" ( (binary_expression "puVar36 + 0x304644" identifier + number_literal) ))))) ;) (if_statement "if (!bVar2) {\n          iVar38 = iVar38 + -1;\n          goto LAB_000a5110;\n        }" if (parenthesized_expression "(!bVar2)" ( (unary_expression "!bVar2" ! identifier) )) (compound_statement "{\n          iVar38 = iVar38 + -1;\n          goto LAB_000a5110;\n        }" { (expression_statement "iVar38 = iVar38 + -1;" (assignment_expression "iVar38 = iVar38 + -1" identifier = (binary_expression "iVar38 + -1" identifier + number_literal)) ;) (goto_statement "goto LAB_000a5110;" goto statement_identifier ;) })) }) (else_clause "else {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n      }" else (compound_statement "{\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n      }" { (expression_statement "pcVar37 = *(code **)(puVar36 + 0x304644);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x304644)" identifier = (pointer_expression "*(code **)(puVar36 + 0x304644)" * (cast_expression "(code **)(puVar36 + 0x304644)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304644)" ( (binary_expression "puVar36 + 0x304644" identifier + number_literal) ))))) ;) })))) (expression_statement "puVar13 = (undefined4 *)(*pcVar37)(0x28);" (assignment_expression "puVar13 = (undefined4 *)(*pcVar37)(0x28)" identifier = (cast_expression "(undefined4 *)(*pcVar37)(0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar37)(0x28)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(0x28)" ( number_literal ))))) ;) (expression_statement "pdVar7 = pdVar6;" (assignment_expression "pdVar7 = pdVar6" identifier = identifier) ;) (expression_statement "puVar12 = puVar13;" (assignment_expression "puVar12 = puVar13" identifier = identifier) ;) (do_statement "do {\n        puVar22 = puVar12;\n        pdVar8 = pdVar7;\n        pdVar7 = pdVar8 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar8 + 4);\n        uVar27 = *(undefined4 *)(pdVar8 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar8 + 0xc);\n        *puVar22 = *(undefined4 *)pdVar8;\n        puVar22[1] = uVar28;\n        puVar22[2] = uVar27;\n        puVar22[3] = uVar26;\n        puVar12 = puVar22 + 4;\n      } while (pdVar7 != pdVar6 + 4);" do (compound_statement "{\n        puVar22 = puVar12;\n        pdVar8 = pdVar7;\n        pdVar7 = pdVar8 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar8 + 4);\n        uVar27 = *(undefined4 *)(pdVar8 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar8 + 0xc);\n        *puVar22 = *(undefined4 *)pdVar8;\n        puVar22[1] = uVar28;\n        puVar22[2] = uVar27;\n        puVar22[3] = uVar26;\n        puVar12 = puVar22 + 4;\n      }" { (expression_statement "puVar22 = puVar12;" (assignment_expression "puVar22 = puVar12" identifier = identifier) ;) (expression_statement "pdVar8 = pdVar7;" (assignment_expression "pdVar8 = pdVar7" identifier = identifier) ;) (expression_statement "pdVar7 = pdVar8 + 2;" (assignment_expression "pdVar7 = pdVar8 + 2" identifier = (binary_expression "pdVar8 + 2" identifier + number_literal)) ;) (expression_statement "uVar28 = *(undefined4 *)((int)pdVar8 + 4);" (assignment_expression "uVar28 = *(undefined4 *)((int)pdVar8 + 4)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar8 + 4)" * (cast_expression "(undefined4 *)((int)pdVar8 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar8 + 4)" ( (binary_expression "(int)pdVar8 + 4" (cast_expression "(int)pdVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar27 = *(undefined4 *)(pdVar8 + 1);" (assignment_expression "uVar27 = *(undefined4 *)(pdVar8 + 1)" identifier = (pointer_expression "*(undefined4 *)(pdVar8 + 1)" * (cast_expression "(undefined4 *)(pdVar8 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar8 + 1)" ( (binary_expression "pdVar8 + 1" identifier + number_literal) ))))) ;) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar8 + 0xc);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar8 + 0xc)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar8 + 0xc)" * (cast_expression "(undefined4 *)((int)pdVar8 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar8 + 0xc)" ( (binary_expression "(int)pdVar8 + 0xc" (cast_expression "(int)pdVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*puVar22 = *(undefined4 *)pdVar8;" (assignment_expression "*puVar22 = *(undefined4 *)pdVar8" (pointer_expression "*puVar22" * identifier) = (pointer_expression "*(undefined4 *)pdVar8" * (cast_expression "(undefined4 *)pdVar8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar22[1] = uVar28;" (assignment_expression "puVar22[1] = uVar28" (subscript_expression "puVar22[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22[2] = uVar27;" (assignment_expression "puVar22[2] = uVar27" (subscript_expression "puVar22[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22[3] = uVar26;" (assignment_expression "puVar22[3] = uVar26" (subscript_expression "puVar22[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12 = puVar22 + 4;" (assignment_expression "puVar12 = puVar22 + 4" identifier = (binary_expression "puVar22 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pdVar7 != pdVar6 + 4)" ( (binary_expression "pdVar7 != pdVar6 + 4" identifier != (binary_expression "pdVar6 + 4" identifier + number_literal)) )) ;) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar8 + 0x14);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar8 + 0x14)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar8 + 0x14)" * (cast_expression "(undefined4 *)((int)pdVar8 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar8 + 0x14)" ( (binary_expression "(int)pdVar8 + 0x14" (cast_expression "(int)pdVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042b0);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042b0)" identifier = (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) ;) (expression_statement "puVar22[4] = *(undefined4 *)pdVar7;" (assignment_expression "puVar22[4] = *(undefined4 *)pdVar7" (subscript_expression "puVar22[4]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)pdVar7" * (cast_expression "(undefined4 *)pdVar7" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar22[5] = uVar26;" (assignment_expression "puVar22[5] = uVar26" (subscript_expression "puVar22[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[4] = 0;" (assignment_expression "puVar13[4] = 0" (subscript_expression "puVar13[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(*pcVar37)(pdVar6);" (call_expression "(*pcVar37)(pdVar6)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(pdVar6)" ( identifier ))) ;) (goto_statement "goto LAB_000a61cc;" goto statement_identifier ;) })) (expression_statement "uVar26 = 0x1c57;" (assignment_expression "uVar26 = 0x1c57" identifier = number_literal) ;) (labeled_statement "LAB_000a5724:\n    (**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               uVar26,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);" statement_identifier : (expression_statement "(**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               uVar26,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);" (call_expression "(**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               uVar26,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688)" (parenthesized_expression "(**(code **)(puVar36 + 0x304210))" ( (pointer_expression "**(code **)(puVar36 + 0x304210)" * (pointer_expression "*(code **)(puVar36 + 0x304210)" * (cast_expression "(code **)(puVar36 + 0x304210)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304210)" ( (binary_expression "puVar36 + 0x304210" identifier + number_literal) ))))) )) (argument_list "(param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               uVar26,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688)" ( identifier , (binary_expression "*(int *)(puVar36 + 0x303bd8) + 0x38b0" (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar36 + 0x303bd8) + 0x45c8" (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) )))) + number_literal) , identifier , number_literal , (binary_expression "*(int *)(puVar36 + 0x303bd0) + 0x16f8" (pointer_expression "*(int *)(puVar36 + 0x303bd0)" * (cast_expression "(int *)(puVar36 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd0)" ( (binary_expression "puVar36 + 0x303bd0" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar36 + 0x303bd0) + 0x3e28" (pointer_expression "*(int *)(puVar36 + 0x303bd0)" * (cast_expression "(int *)(puVar36 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd0)" ( (binary_expression "puVar36 + 0x303bd0" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar36 + 0x303bd4) + -0x3688" (pointer_expression "*(int *)(puVar36 + 0x303bd4)" * (cast_expression "(int *)(puVar36 + 0x303bd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd4)" ( (binary_expression "puVar36 + 0x303bd4" identifier + number_literal) )))) + number_literal) ))) ;)) (expression_statement "uStack_1d0 = 0;" (assignment_expression "uStack_1d0 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000a5774;" goto statement_identifier ;) })) (expression_statement "uStack_1d0 = 1;" (assignment_expression "uStack_1d0 = 1" identifier = number_literal) ;) (labeled_statement "LAB_000a5774:\n  pcVar37 = *(code **)(puVar36 + 0x3042d8);" statement_identifier : (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042d8);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042d8)" identifier = (pointer_expression "*(code **)(puVar36 + 0x3042d8)" * (cast_expression "(code **)(puVar36 + 0x3042d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042d8)" ( (binary_expression "puVar36 + 0x3042d8" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_000a5778:\n  (*pcVar37)(iVar5);" statement_identifier : (expression_statement "(*pcVar37)(iVar5);" (call_expression "(*pcVar37)(iVar5)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(iVar5)" ( identifier ))) ;)) (if_statement "if (*(int *)(iVar17 + 0x3350) != 0) {\n    (**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x16b4,*(int *)(puVar36 + 0x303bd8) + 0x3df8);\n  }" if (parenthesized_expression "(*(int *)(iVar17 + 0x3350) != 0)" ( (binary_expression "*(int *)(iVar17 + 0x3350) != 0" (pointer_expression "*(int *)(iVar17 + 0x3350)" * (cast_expression "(int *)(iVar17 + 0x3350)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x3350)" ( (binary_expression "iVar17 + 0x3350" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    (**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x16b4,*(int *)(puVar36 + 0x303bd8) + 0x3df8);\n  }" { (expression_statement "(**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x16b4,*(int *)(puVar36 + 0x303bd8) + 0x3df8);" (call_expression "(**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x16b4,*(int *)(puVar36 + 0x303bd8) + 0x3df8)" (parenthesized_expression "(**(code **)(puVar36 + 0x3044d0))" ( (pointer_expression "**(code **)(puVar36 + 0x3044d0)" * (pointer_expression "*(code **)(puVar36 + 0x3044d0)" * (cast_expression "(code **)(puVar36 + 0x3044d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3044d0)" ( (binary_expression "puVar36 + 0x3044d0" identifier + number_literal) ))))) )) (argument_list "(0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x16b4,*(int *)(puVar36 + 0x303bd8) + 0x3df8)" ( number_literal , (binary_expression "*(int *)(puVar36 + 0x303bd8) + 0x38b0" (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar36 + 0x303bd8) + 0x45dc" (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(puVar36 + 0x303bd8) + 0x3df8" (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) )))) + number_literal) ))) ;) })) (return_statement "return uStack_1d0;" return identifier ;) (labeled_statement "LAB_000a5a58:\n  iVar29 = iVar35 + 1;" statement_identifier : (expression_statement "iVar29 = iVar35 + 1;" (assignment_expression "iVar29 = iVar35 + 1" identifier = (binary_expression "iVar35 + 1" identifier + number_literal)) ;)) (expression_statement "iVar35 = iVar35 << 4;" (assignment_expression "iVar35 = iVar35 << 4" identifier = (binary_expression "iVar35 << 4" identifier << number_literal)) ;) (expression_statement "iVar32 = iVar33 << 4;" (assignment_expression "iVar32 = iVar33 << 4" identifier = (binary_expression "iVar33 << 4" identifier << number_literal)) ;) (expression_statement "iVar38 = iVar33 + 1 + iVar29;" (assignment_expression "iVar38 = iVar33 + 1 + iVar29" identifier = (binary_expression "iVar33 + 1 + iVar29" (binary_expression "iVar33 + 1" identifier + number_literal) + identifier)) ;) (labeled_statement "LAB_000a5a70:\n  pcVar37 = *(code **)(puVar36 + 0x3047fc);" statement_identifier : (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3047fc);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3047fc)" identifier = (pointer_expression "*(code **)(puVar36 + 0x3047fc)" * (cast_expression "(code **)(puVar36 + 0x3047fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3047fc)" ( (binary_expression "puVar36 + 0x3047fc" identifier + number_literal) ))))) ;)) (expression_statement "iVar38 = iStack_188 * 2 + iVar38;" (assignment_expression "iVar38 = iStack_188 * 2 + iVar38" identifier = (binary_expression "iStack_188 * 2 + iVar38" (binary_expression "iStack_188 * 2" identifier * number_literal) + identifier)) ;) (expression_statement "*(double *)((int)pdVar7 + iVar35) = dStack_250;" (assignment_expression "*(double *)((int)pdVar7 + iVar35) = dStack_250" (pointer_expression "*(double *)((int)pdVar7 + iVar35)" * (cast_expression "(double *)((int)pdVar7 + iVar35)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar7 + iVar35)" ( (binary_expression "(int)pdVar7 + iVar35" (cast_expression "(int)pdVar7" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (expression_statement "((double *)((int)pdVar7 + iVar35))[1] = dStack_248;" (assignment_expression "((double *)((int)pdVar7 + iVar35))[1] = dStack_248" (subscript_expression "((double *)((int)pdVar7 + iVar35))[1]" (parenthesized_expression "((double *)((int)pdVar7 + iVar35))" ( (cast_expression "(double *)((int)pdVar7 + iVar35)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar7 + iVar35)" ( (binary_expression "(int)pdVar7 + iVar35" (cast_expression "(int)pdVar7" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))) )) [ number_literal ]) = identifier) ;) (expression_statement "*(double *)((int)pdVar8 + iVar32) = dStack_240;" (assignment_expression "*(double *)((int)pdVar8 + iVar32) = dStack_240" (pointer_expression "*(double *)((int)pdVar8 + iVar32)" * (cast_expression "(double *)((int)pdVar8 + iVar32)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar8 + iVar32)" ( (binary_expression "(int)pdVar8 + iVar32" (cast_expression "(int)pdVar8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (expression_statement "((double *)((int)pdVar8 + iVar32))[1] = dStack_238;" (assignment_expression "((double *)((int)pdVar8 + iVar32))[1] = dStack_238" (subscript_expression "((double *)((int)pdVar8 + iVar32))[1]" (parenthesized_expression "((double *)((int)pdVar8 + iVar32))" ( (cast_expression "(double *)((int)pdVar8 + iVar32)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar8 + iVar32)" ( (binary_expression "(int)pdVar8 + iVar32" (cast_expression "(int)pdVar8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))) )) [ number_literal ]) = identifier) ;) (expression_statement "puVar13 = (undefined4 *)(*pcVar37)(iVar38 + 2,0x28);" (assignment_expression "puVar13 = (undefined4 *)(*pcVar37)(iVar38 + 2,0x28)" identifier = (cast_expression "(undefined4 *)(*pcVar37)(iVar38 + 2,0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar37)(iVar38 + 2,0x28)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(iVar38 + 2,0x28)" ( (binary_expression "iVar38 + 2" identifier + number_literal) , number_literal ))))) ;) (if_statement "if (puVar13 == (undefined4 *)0x0) {\n    (**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               0x1dbc,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n    uStack_1d0 = 0;\n    goto LAB_000a5774;\n  }" if (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" ( (binary_expression "puVar13 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               0x1dbc,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n    uStack_1d0 = 0;\n    goto LAB_000a5774;\n  }" { (expression_statement "(**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               0x1dbc,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);" (call_expression "(**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               0x1dbc,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688)" (parenthesized_expression "(**(code **)(puVar36 + 0x304210))" ( (pointer_expression "**(code **)(puVar36 + 0x304210)" * (pointer_expression "*(code **)(puVar36 + 0x304210)" * (cast_expression "(code **)(puVar36 + 0x304210)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x304210)" ( (binary_expression "puVar36 + 0x304210" identifier + number_literal) ))))) )) (argument_list "(param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               0x1dbc,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688)" ( identifier , (binary_expression "*(int *)(puVar36 + 0x303bd8) + 0x38b0" (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar36 + 0x303bd8) + 0x45c8" (pointer_expression "*(int *)(puVar36 + 0x303bd8)" * (cast_expression "(int *)(puVar36 + 0x303bd8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd8)" ( (binary_expression "puVar36 + 0x303bd8" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , (binary_expression "*(int *)(puVar36 + 0x303bd0) + 0x16f8" (pointer_expression "*(int *)(puVar36 + 0x303bd0)" * (cast_expression "(int *)(puVar36 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd0)" ( (binary_expression "puVar36 + 0x303bd0" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar36 + 0x303bd0) + 0x3e28" (pointer_expression "*(int *)(puVar36 + 0x303bd0)" * (cast_expression "(int *)(puVar36 + 0x303bd0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd0)" ( (binary_expression "puVar36 + 0x303bd0" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar36 + 0x303bd4) + -0x3688" (pointer_expression "*(int *)(puVar36 + 0x303bd4)" * (cast_expression "(int *)(puVar36 + 0x303bd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + 0x303bd4)" ( (binary_expression "puVar36 + 0x303bd4" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar7);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar7)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar36 + 0x3042b0)" * (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar7)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar8);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar8)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar36 + 0x3042b0)" * (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar8)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar6);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar6)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar36 + 0x3042b0)" * (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar6)" ( identifier ))) ;) (expression_statement "uStack_1d0 = 0;" (assignment_expression "uStack_1d0 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000a5774;" goto statement_identifier ;) })) (expression_statement "pdVar31 = pdVar6 + 4;" (assignment_expression "pdVar31 = pdVar6 + 4" identifier = (binary_expression "pdVar6 + 4" identifier + number_literal)) ;) (expression_statement "pdVar11 = pdVar6;" (assignment_expression "pdVar11 = pdVar6" identifier = identifier) ;) (expression_statement "puVar12 = puVar13;" (assignment_expression "puVar12 = puVar13" identifier = identifier) ;) (expression_statement "pdVar21 = pdVar7;" (assignment_expression "pdVar21 = pdVar7" identifier = identifier) ;) (expression_statement "puVar22 = puVar13;" (assignment_expression "puVar22 = puVar13" identifier = identifier) ;) (do_statement "do {\n    do {\n      puVar23 = puVar12;\n      pdVar10 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar10;\n      puVar12 = puVar23 + 4;\n    } while (pdVar10 != pdVar31);\n    pdVar10 = pdVar21 + 2;\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar23[4] = *(undefined4 *)pdVar31;\n    puVar23[5] = uVar26;\n    uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n    uVar27 = *(undefined4 *)(pdVar21 + 1);\n    uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n    *puVar22 = *(undefined4 *)pdVar21;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    pdVar11 = pdVar6;\n    puVar12 = puVar22 + 10;\n    pdVar21 = pdVar10;\n    puVar22 = puVar22 + 10;\n  } while (pdVar7 + iVar29 * 2 != pdVar10);" do (compound_statement "{\n    do {\n      puVar23 = puVar12;\n      pdVar10 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar10;\n      puVar12 = puVar23 + 4;\n    } while (pdVar10 != pdVar31);\n    pdVar10 = pdVar21 + 2;\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar23[4] = *(undefined4 *)pdVar31;\n    puVar23[5] = uVar26;\n    uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n    uVar27 = *(undefined4 *)(pdVar21 + 1);\n    uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n    *puVar22 = *(undefined4 *)pdVar21;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    pdVar11 = pdVar6;\n    puVar12 = puVar22 + 10;\n    pdVar21 = pdVar10;\n    puVar22 = puVar22 + 10;\n  }" { (do_statement "do {\n      puVar23 = puVar12;\n      pdVar10 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar10;\n      puVar12 = puVar23 + 4;\n    } while (pdVar10 != pdVar31);" do (compound_statement "{\n      puVar23 = puVar12;\n      pdVar10 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar10;\n      puVar12 = puVar23 + 4;\n    }" { (expression_statement "puVar23 = puVar12;" (assignment_expression "puVar23 = puVar12" identifier = identifier) ;) (expression_statement "pdVar10 = pdVar11 + 2;" (assignment_expression "pdVar10 = pdVar11 + 2" identifier = (binary_expression "pdVar11 + 2" identifier + number_literal)) ;) (expression_statement "uVar28 = *(undefined4 *)((int)pdVar11 + 4);" (assignment_expression "uVar28 = *(undefined4 *)((int)pdVar11 + 4)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar11 + 4)" * (cast_expression "(undefined4 *)((int)pdVar11 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar11 + 4)" ( (binary_expression "(int)pdVar11 + 4" (cast_expression "(int)pdVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar27 = *(undefined4 *)(pdVar11 + 1);" (assignment_expression "uVar27 = *(undefined4 *)(pdVar11 + 1)" identifier = (pointer_expression "*(undefined4 *)(pdVar11 + 1)" * (cast_expression "(undefined4 *)(pdVar11 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar11 + 1)" ( (binary_expression "pdVar11 + 1" identifier + number_literal) ))))) ;) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar11 + 0xc)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar11 + 0xc)" * (cast_expression "(undefined4 *)((int)pdVar11 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar11 + 0xc)" ( (binary_expression "(int)pdVar11 + 0xc" (cast_expression "(int)pdVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*puVar23 = *(undefined4 *)pdVar11;" (assignment_expression "*puVar23 = *(undefined4 *)pdVar11" (pointer_expression "*puVar23" * identifier) = (pointer_expression "*(undefined4 *)pdVar11" * (cast_expression "(undefined4 *)pdVar11" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar23[1] = uVar28;" (assignment_expression "puVar23[1] = uVar28" (subscript_expression "puVar23[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar23[2] = uVar27;" (assignment_expression "puVar23[2] = uVar27" (subscript_expression "puVar23[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar23[3] = uVar26;" (assignment_expression "puVar23[3] = uVar26" (subscript_expression "puVar23[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pdVar11 = pdVar10;" (assignment_expression "pdVar11 = pdVar10" identifier = identifier) ;) (expression_statement "puVar12 = puVar23 + 4;" (assignment_expression "puVar12 = puVar23 + 4" identifier = (binary_expression "puVar23 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pdVar10 != pdVar31)" ( (binary_expression "pdVar10 != pdVar31" identifier != identifier) )) ;) (expression_statement "pdVar10 = pdVar21 + 2;" (assignment_expression "pdVar10 = pdVar21 + 2" identifier = (binary_expression "pdVar21 + 2" identifier + number_literal)) ;) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar6 + 0x24)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar6 + 0x24)" * (cast_expression "(undefined4 *)((int)pdVar6 + 0x24)" ( (type_descriptor "undefined4 *" 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) ))))) ;) (expression_statement "puVar23[4] = *(undefined4 *)pdVar31;" (assignment_expression "puVar23[4] = *(undefined4 *)pdVar31" (subscript_expression "puVar23[4]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)pdVar31" * (cast_expression "(undefined4 *)pdVar31" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar23[5] = uVar26;" (assignment_expression "puVar23[5] = uVar26" (subscript_expression "puVar23[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar28 = *(undefined4 *)((int)pdVar21 + 4);" (assignment_expression "uVar28 = *(undefined4 *)((int)pdVar21 + 4)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar21 + 4)" * (cast_expression "(undefined4 *)((int)pdVar21 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar21 + 4)" ( (binary_expression "(int)pdVar21 + 4" (cast_expression "(int)pdVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar27 = *(undefined4 *)(pdVar21 + 1);" (assignment_expression "uVar27 = *(undefined4 *)(pdVar21 + 1)" identifier = (pointer_expression "*(undefined4 *)(pdVar21 + 1)" * (cast_expression "(undefined4 *)(pdVar21 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar21 + 1)" ( (binary_expression "pdVar21 + 1" identifier + number_literal) ))))) ;) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar21 + 0xc)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar21 + 0xc)" * (cast_expression "(undefined4 *)((int)pdVar21 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar21 + 0xc)" ( (binary_expression "(int)pdVar21 + 0xc" (cast_expression "(int)pdVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*puVar22 = *(undefined4 *)pdVar21;" (assignment_expression "*puVar22 = *(undefined4 *)pdVar21" (pointer_expression "*puVar22" * identifier) = (pointer_expression "*(undefined4 *)pdVar21" * (cast_expression "(undefined4 *)pdVar21" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar22[1] = uVar28;" (assignment_expression "puVar22[1] = uVar28" (subscript_expression "puVar22[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22[2] = uVar27;" (assignment_expression "puVar22[2] = uVar27" (subscript_expression "puVar22[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22[3] = uVar26;" (assignment_expression "puVar22[3] = uVar26" (subscript_expression "puVar22[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pdVar11 = pdVar6;" (assignment_expression "pdVar11 = pdVar6" identifier = identifier) ;) (expression_statement "puVar12 = puVar22 + 10;" (assignment_expression "puVar12 = puVar22 + 10" identifier = (binary_expression "puVar22 + 10" identifier + number_literal)) ;) (expression_statement "pdVar21 = pdVar10;" (assignment_expression "pdVar21 = pdVar10" identifier = identifier) ;) (expression_statement "puVar22 = puVar22 + 10;" (assignment_expression "puVar22 = puVar22 + 10" identifier = (binary_expression "puVar22 + 10" identifier + number_literal)) ;) }) while (parenthesized_expression "(pdVar7 + iVar29 * 2 != pdVar10)" ( (binary_expression "pdVar7 + iVar29 * 2 != pdVar10" (binary_expression "pdVar7 + iVar29 * 2" identifier + (binary_expression "iVar29 * 2" identifier * number_literal)) != identifier) )) ;) (expression_statement "puVar22 = puVar13 + iVar29 * 10;" (assignment_expression "puVar22 = puVar13 + iVar29 * 10" identifier = (binary_expression "puVar13 + iVar29 * 10" identifier + (binary_expression "iVar29 * 10" identifier * number_literal))) ;) (expression_statement "puVar12 = puVar22;" (assignment_expression "puVar12 = puVar22" identifier = identifier) ;) (if_statement "if (bVar2) {\n    do {\n      puVar23 = puVar12;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar12 = puVar23 + 4;\n    } while (pdVar21 != pdVar31);\n    iVar29 = iVar29 + 1;\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar23[4] = *(undefined4 *)(pdVar6 + 4);\n    puVar23[5] = uVar26;\n    uVar28 = puVar13[1];\n    uVar27 = puVar13[2];\n    uVar26 = puVar13[3];\n    puVar12 = puVar13 + iVar29 * 10;\n    *puVar22 = *puVar13;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n  }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n    do {\n      puVar23 = puVar12;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar12 = puVar23 + 4;\n    } while (pdVar21 != pdVar31);\n    iVar29 = iVar29 + 1;\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar23[4] = *(undefined4 *)(pdVar6 + 4);\n    puVar23[5] = uVar26;\n    uVar28 = puVar13[1];\n    uVar27 = puVar13[2];\n    uVar26 = puVar13[3];\n    puVar12 = puVar13 + iVar29 * 10;\n    *puVar22 = *puVar13;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n  }" { (do_statement "do {\n      puVar23 = puVar12;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar12 = puVar23 + 4;\n    } while (pdVar21 != pdVar31);" do (compound_statement "{\n      puVar23 = puVar12;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar12 = puVar23 + 4;\n    }" { (expression_statement "puVar23 = puVar12;" (assignment_expression "puVar23 = puVar12" identifier = identifier) ;) (expression_statement "pdVar21 = pdVar11 + 2;" (assignment_expression "pdVar21 = pdVar11 + 2" identifier = (binary_expression "pdVar11 + 2" identifier + number_literal)) ;) (expression_statement "uVar28 = *(undefined4 *)((int)pdVar11 + 4);" (assignment_expression "uVar28 = *(undefined4 *)((int)pdVar11 + 4)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar11 + 4)" * (cast_expression "(undefined4 *)((int)pdVar11 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar11 + 4)" ( (binary_expression "(int)pdVar11 + 4" (cast_expression "(int)pdVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar27 = *(undefined4 *)(pdVar11 + 1);" (assignment_expression "uVar27 = *(undefined4 *)(pdVar11 + 1)" identifier = (pointer_expression "*(undefined4 *)(pdVar11 + 1)" * (cast_expression "(undefined4 *)(pdVar11 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar11 + 1)" ( (binary_expression "pdVar11 + 1" identifier + number_literal) ))))) ;) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar11 + 0xc)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar11 + 0xc)" * (cast_expression "(undefined4 *)((int)pdVar11 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar11 + 0xc)" ( (binary_expression "(int)pdVar11 + 0xc" (cast_expression "(int)pdVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*puVar23 = *(undefined4 *)pdVar11;" (assignment_expression "*puVar23 = *(undefined4 *)pdVar11" (pointer_expression "*puVar23" * identifier) = (pointer_expression "*(undefined4 *)pdVar11" * (cast_expression "(undefined4 *)pdVar11" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar23[1] = uVar28;" (assignment_expression "puVar23[1] = uVar28" (subscript_expression "puVar23[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar23[2] = uVar27;" (assignment_expression "puVar23[2] = uVar27" (subscript_expression "puVar23[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar23[3] = uVar26;" (assignment_expression "puVar23[3] = uVar26" (subscript_expression "puVar23[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pdVar11 = pdVar21;" (assignment_expression "pdVar11 = pdVar21" identifier = identifier) ;) (expression_statement "puVar12 = puVar23 + 4;" (assignment_expression "puVar12 = puVar23 + 4" identifier = (binary_expression "puVar23 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pdVar21 != pdVar31)" ( (binary_expression "pdVar21 != pdVar31" identifier != identifier) )) ;) (expression_statement "iVar29 = iVar29 + 1;" (assignment_expression "iVar29 = iVar29 + 1" identifier = (binary_expression "iVar29 + 1" identifier + number_literal)) ;) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar6 + 0x24)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar6 + 0x24)" * (cast_expression "(undefined4 *)((int)pdVar6 + 0x24)" ( (type_descriptor "undefined4 *" 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) ))))) ;) (expression_statement "puVar23[4] = *(undefined4 *)(pdVar6 + 4);" (assignment_expression "puVar23[4] = *(undefined4 *)(pdVar6 + 4)" (subscript_expression "puVar23[4]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(pdVar6 + 4)" * (cast_expression "(undefined4 *)(pdVar6 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar6 + 4)" ( (binary_expression "pdVar6 + 4" identifier + number_literal) ))))) ;) (expression_statement "puVar23[5] = uVar26;" (assignment_expression "puVar23[5] = uVar26" (subscript_expression "puVar23[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar28 = puVar13[1];" (assignment_expression "uVar28 = puVar13[1]" identifier = (subscript_expression "puVar13[1]" identifier [ number_literal ])) ;) (expression_statement "uVar27 = puVar13[2];" (assignment_expression "uVar27 = puVar13[2]" identifier = (subscript_expression "puVar13[2]" identifier [ number_literal ])) ;) (expression_statement "uVar26 = puVar13[3];" (assignment_expression "uVar26 = puVar13[3]" identifier = (subscript_expression "puVar13[3]" identifier [ number_literal ])) ;) (expression_statement "puVar12 = puVar13 + iVar29 * 10;" (assignment_expression "puVar12 = puVar13 + iVar29 * 10" identifier = (binary_expression "puVar13 + iVar29 * 10" identifier + (binary_expression "iVar29 * 10" identifier * number_literal))) ;) (expression_statement "*puVar22 = *puVar13;" (assignment_expression "*puVar22 = *puVar13" (pointer_expression "*puVar22" * identifier) = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "puVar22[1] = uVar28;" (assignment_expression "puVar22[1] = uVar28" (subscript_expression "puVar22[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22[2] = uVar27;" (assignment_expression "puVar22[2] = uVar27" (subscript_expression "puVar22[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22[3] = uVar26;" (assignment_expression "puVar22[3] = uVar26" (subscript_expression "puVar22[3]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "iStack_188 = iVar38 - iStack_188;" (assignment_expression "iStack_188 = iVar38 - iStack_188" identifier = (binary_expression "iVar38 - iStack_188" identifier - identifier)) ;) (if_statement "if (iVar29 < iStack_188) {\n    pdVar11 = pdVar6;\n    puVar12 = puVar13 + iVar29 * 10;\n    pdVar21 = pdVar8 + ((iStack_188 + 0xfffffff) - iVar29) * 2;\n    puVar23 = puVar13 + iVar29 * 10;\n    do {\n      do {\n        puVar25 = puVar12;\n        pdVar10 = pdVar11 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n        uVar27 = *(undefined4 *)(pdVar11 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n        *puVar25 = *(undefined4 *)pdVar11;\n        puVar25[1] = uVar28;\n        puVar25[2] = uVar27;\n        puVar25[3] = uVar26;\n        pdVar11 = pdVar10;\n        puVar12 = puVar25 + 4;\n      } while (pdVar10 != pdVar31);\n      pdVar10 = pdVar21 + -2;\n      uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n      puVar25[4] = *(undefined4 *)pdVar31;\n      puVar25[5] = uVar26;\n      uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n      uVar27 = *(undefined4 *)(pdVar21 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar21;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar6;\n      puVar12 = puVar23 + 10;\n      pdVar21 = pdVar10;\n      puVar23 = puVar23 + 10;\n    } while (pdVar8 + -2 != pdVar10);\n    puVar12 = puVar13 + iStack_188 * 10;\n    iVar29 = iStack_188;\n  }" if (parenthesized_expression "(iVar29 < iStack_188)" ( (binary_expression "iVar29 < iStack_188" identifier < identifier) )) (compound_statement "{\n    pdVar11 = pdVar6;\n    puVar12 = puVar13 + iVar29 * 10;\n    pdVar21 = pdVar8 + ((iStack_188 + 0xfffffff) - iVar29) * 2;\n    puVar23 = puVar13 + iVar29 * 10;\n    do {\n      do {\n        puVar25 = puVar12;\n        pdVar10 = pdVar11 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n        uVar27 = *(undefined4 *)(pdVar11 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n        *puVar25 = *(undefined4 *)pdVar11;\n        puVar25[1] = uVar28;\n        puVar25[2] = uVar27;\n        puVar25[3] = uVar26;\n        pdVar11 = pdVar10;\n        puVar12 = puVar25 + 4;\n      } while (pdVar10 != pdVar31);\n      pdVar10 = pdVar21 + -2;\n      uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n      puVar25[4] = *(undefined4 *)pdVar31;\n      puVar25[5] = uVar26;\n      uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n      uVar27 = *(undefined4 *)(pdVar21 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar21;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar6;\n      puVar12 = puVar23 + 10;\n      pdVar21 = pdVar10;\n      puVar23 = puVar23 + 10;\n    } while (pdVar8 + -2 != pdVar10);\n    puVar12 = puVar13 + iStack_188 * 10;\n    iVar29 = iStack_188;\n  }" { (expression_statement "pdVar11 = pdVar6;" (assignment_expression "pdVar11 = pdVar6" identifier = identifier) ;) (expression_statement "puVar12 = puVar13 + iVar29 * 10;" (assignment_expression "puVar12 = puVar13 + iVar29 * 10" identifier = (binary_expression "puVar13 + iVar29 * 10" identifier + (binary_expression "iVar29 * 10" identifier * number_literal))) ;) (expression_statement "pdVar21 = pdVar8 + ((iStack_188 + 0xfffffff) - iVar29) * 2;" (assignment_expression "pdVar21 = pdVar8 + ((iStack_188 + 0xfffffff) - iVar29) * 2" identifier = (binary_expression "pdVar8 + ((iStack_188 + 0xfffffff) - iVar29) * 2" identifier + (binary_expression "((iStack_188 + 0xfffffff) - iVar29) * 2" (parenthesized_expression "((iStack_188 + 0xfffffff) - iVar29)" ( (binary_expression "(iStack_188 + 0xfffffff) - iVar29" (parenthesized_expression "(iStack_188 + 0xfffffff)" ( (binary_expression "iStack_188 + 0xfffffff" identifier + number_literal) )) - identifier) )) * number_literal))) ;) (expression_statement "puVar23 = puVar13 + iVar29 * 10;" (assignment_expression "puVar23 = puVar13 + iVar29 * 10" identifier = (binary_expression "puVar13 + iVar29 * 10" identifier + (binary_expression "iVar29 * 10" identifier * number_literal))) ;) (do_statement "do {\n      do {\n        puVar25 = puVar12;\n        pdVar10 = pdVar11 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n        uVar27 = *(undefined4 *)(pdVar11 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n        *puVar25 = *(undefined4 *)pdVar11;\n        puVar25[1] = uVar28;\n        puVar25[2] = uVar27;\n        puVar25[3] = uVar26;\n        pdVar11 = pdVar10;\n        puVar12 = puVar25 + 4;\n      } while (pdVar10 != pdVar31);\n      pdVar10 = pdVar21 + -2;\n      uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n      puVar25[4] = *(undefined4 *)pdVar31;\n      puVar25[5] = uVar26;\n      uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n      uVar27 = *(undefined4 *)(pdVar21 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar21;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar6;\n      puVar12 = puVar23 + 10;\n      pdVar21 = pdVar10;\n      puVar23 = puVar23 + 10;\n    } while (pdVar8 + -2 != pdVar10);" do (compound_statement "{\n      do {\n        puVar25 = puVar12;\n        pdVar10 = pdVar11 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n        uVar27 = *(undefined4 *)(pdVar11 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n        *puVar25 = *(undefined4 *)pdVar11;\n        puVar25[1] = uVar28;\n        puVar25[2] = uVar27;\n        puVar25[3] = uVar26;\n        pdVar11 = pdVar10;\n        puVar12 = puVar25 + 4;\n      } while (pdVar10 != pdVar31);\n      pdVar10 = pdVar21 + -2;\n      uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n      puVar25[4] = *(undefined4 *)pdVar31;\n      puVar25[5] = uVar26;\n      uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n      uVar27 = *(undefined4 *)(pdVar21 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar21;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar6;\n      puVar12 = puVar23 + 10;\n      pdVar21 = pdVar10;\n      puVar23 = puVar23 + 10;\n    }" { (do_statement "do {\n        puVar25 = puVar12;\n        pdVar10 = pdVar11 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n        uVar27 = *(undefined4 *)(pdVar11 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n        *puVar25 = *(undefined4 *)pdVar11;\n        puVar25[1] = uVar28;\n        puVar25[2] = uVar27;\n        puVar25[3] = uVar26;\n        pdVar11 = pdVar10;\n        puVar12 = puVar25 + 4;\n      } while (pdVar10 != pdVar31);" do (compound_statement "{\n        puVar25 = puVar12;\n        pdVar10 = pdVar11 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n        uVar27 = *(undefined4 *)(pdVar11 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n        *puVar25 = *(undefined4 *)pdVar11;\n        puVar25[1] = uVar28;\n        puVar25[2] = uVar27;\n        puVar25[3] = uVar26;\n        pdVar11 = pdVar10;\n        puVar12 = puVar25 + 4;\n      }" { (expression_statement "puVar25 = puVar12;" (assignment_expression "puVar25 = puVar12" identifier = identifier) ;) (expression_statement "pdVar10 = pdVar11 + 2;" (assignment_expression "pdVar10 = pdVar11 + 2" identifier = (binary_expression "pdVar11 + 2" identifier + number_literal)) ;) (expression_statement "uVar28 = *(undefined4 *)((int)pdVar11 + 4);" (assignment_expression "uVar28 = *(undefined4 *)((int)pdVar11 + 4)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar11 + 4)" * (cast_expression "(undefined4 *)((int)pdVar11 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar11 + 4)" ( (binary_expression "(int)pdVar11 + 4" (cast_expression "(int)pdVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar27 = *(undefined4 *)(pdVar11 + 1);" (assignment_expression "uVar27 = *(undefined4 *)(pdVar11 + 1)" identifier = (pointer_expression "*(undefined4 *)(pdVar11 + 1)" * (cast_expression "(undefined4 *)(pdVar11 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar11 + 1)" ( (binary_expression "pdVar11 + 1" identifier + number_literal) ))))) ;) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar11 + 0xc)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar11 + 0xc)" * (cast_expression "(undefined4 *)((int)pdVar11 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar11 + 0xc)" ( (binary_expression "(int)pdVar11 + 0xc" (cast_expression "(int)pdVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*puVar25 = *(undefined4 *)pdVar11;" (assignment_expression "*puVar25 = *(undefined4 *)pdVar11" (pointer_expression "*puVar25" * identifier) = (pointer_expression "*(undefined4 *)pdVar11" * (cast_expression "(undefined4 *)pdVar11" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar25[1] = uVar28;" (assignment_expression "puVar25[1] = uVar28" (subscript_expression "puVar25[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar25[2] = uVar27;" (assignment_expression "puVar25[2] = uVar27" (subscript_expression "puVar25[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar25[3] = uVar26;" (assignment_expression "puVar25[3] = uVar26" (subscript_expression "puVar25[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pdVar11 = pdVar10;" (assignment_expression "pdVar11 = pdVar10" identifier = identifier) ;) (expression_statement "puVar12 = puVar25 + 4;" (assignment_expression "puVar12 = puVar25 + 4" identifier = (binary_expression "puVar25 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pdVar10 != pdVar31)" ( (binary_expression "pdVar10 != pdVar31" identifier != identifier) )) ;) (expression_statement "pdVar10 = pdVar21 + -2;" (assignment_expression "pdVar10 = pdVar21 + -2" identifier = (binary_expression "pdVar21 + -2" identifier + number_literal)) ;) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar6 + 0x24)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar6 + 0x24)" * (cast_expression "(undefined4 *)((int)pdVar6 + 0x24)" ( (type_descriptor "undefined4 *" 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) ))))) ;) (expression_statement "puVar25[4] = *(undefined4 *)pdVar31;" (assignment_expression "puVar25[4] = *(undefined4 *)pdVar31" (subscript_expression "puVar25[4]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)pdVar31" * (cast_expression "(undefined4 *)pdVar31" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar25[5] = uVar26;" (assignment_expression "puVar25[5] = uVar26" (subscript_expression "puVar25[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar28 = *(undefined4 *)((int)pdVar21 + 4);" (assignment_expression "uVar28 = *(undefined4 *)((int)pdVar21 + 4)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar21 + 4)" * (cast_expression "(undefined4 *)((int)pdVar21 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar21 + 4)" ( (binary_expression "(int)pdVar21 + 4" (cast_expression "(int)pdVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar27 = *(undefined4 *)(pdVar21 + 1);" (assignment_expression "uVar27 = *(undefined4 *)(pdVar21 + 1)" identifier = (pointer_expression "*(undefined4 *)(pdVar21 + 1)" * (cast_expression "(undefined4 *)(pdVar21 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar21 + 1)" ( (binary_expression "pdVar21 + 1" identifier + number_literal) ))))) ;) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar21 + 0xc)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar21 + 0xc)" * (cast_expression "(undefined4 *)((int)pdVar21 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar21 + 0xc)" ( (binary_expression "(int)pdVar21 + 0xc" (cast_expression "(int)pdVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*puVar23 = *(undefined4 *)pdVar21;" (assignment_expression "*puVar23 = *(undefined4 *)pdVar21" (pointer_expression "*puVar23" * identifier) = (pointer_expression "*(undefined4 *)pdVar21" * (cast_expression "(undefined4 *)pdVar21" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar23[1] = uVar28;" (assignment_expression "puVar23[1] = uVar28" (subscript_expression "puVar23[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar23[2] = uVar27;" (assignment_expression "puVar23[2] = uVar27" (subscript_expression "puVar23[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar23[3] = uVar26;" (assignment_expression "puVar23[3] = uVar26" (subscript_expression "puVar23[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pdVar11 = pdVar6;" (assignment_expression "pdVar11 = pdVar6" identifier = identifier) ;) (expression_statement "puVar12 = puVar23 + 10;" (assignment_expression "puVar12 = puVar23 + 10" identifier = (binary_expression "puVar23 + 10" identifier + number_literal)) ;) (expression_statement "pdVar21 = pdVar10;" (assignment_expression "pdVar21 = pdVar10" identifier = identifier) ;) (expression_statement "puVar23 = puVar23 + 10;" (assignment_expression "puVar23 = puVar23 + 10" identifier = (binary_expression "puVar23 + 10" identifier + number_literal)) ;) }) while (parenthesized_expression "(pdVar8 + -2 != pdVar10)" ( (binary_expression "pdVar8 + -2 != pdVar10" (binary_expression "pdVar8 + -2" identifier + number_literal) != identifier) )) ;) (expression_statement "puVar12 = puVar13 + iStack_188 * 10;" (assignment_expression "puVar12 = puVar13 + iStack_188 * 10" identifier = (binary_expression "puVar13 + iStack_188 * 10" identifier + (binary_expression "iStack_188 * 10" identifier * number_literal))) ;) (expression_statement "iVar29 = iStack_188;" (assignment_expression "iVar29 = iStack_188" identifier = identifier) ;) })) (expression_statement "puVar24 = puVar13 + (iVar29 + 1) * 10;" (assignment_expression "puVar24 = puVar13 + (iVar29 + 1) * 10" identifier = (binary_expression "puVar13 + (iVar29 + 1) * 10" identifier + (binary_expression "(iVar29 + 1) * 10" (parenthesized_expression "(iVar29 + 1)" ( (binary_expression "iVar29 + 1" identifier + number_literal) )) * number_literal))) ;) (expression_statement "pdVar11 = pdVar6;" (assignment_expression "pdVar11 = pdVar6" identifier = identifier) ;) (expression_statement "puVar23 = puVar12;" (assignment_expression "puVar23 = puVar12" identifier = identifier) ;) (expression_statement "puVar25 = puVar24;" (assignment_expression "puVar25 = puVar24" identifier = identifier) ;) (if_statement "if (bVar2) {\n    do {\n      puVar25 = puVar23;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar25 = *(undefined4 *)pdVar11;\n      puVar25[1] = uVar28;\n      puVar25[2] = uVar27;\n      puVar25[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar23 = puVar25 + 4;\n    } while (pdVar21 != pdVar31);\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar25[4] = *(undefined4 *)(pdVar6 + 4);\n    puVar25[5] = uVar26;\n    uVar27 = puVar22[0xb];\n    uVar26 = puVar22[0xc];\n    uVar28 = puVar22[0xd];\n    *puVar12 = puVar22[10];\n    puVar12[1] = uVar27;\n    puVar12[2] = uVar26;\n    puVar12[3] = uVar28;\n    puVar25 = puVar13 + (iVar29 + 1) * 10 + 10;\n    pdVar11 = pdVar6;\n    puVar12 = puVar24;\n    puVar23 = puVar24;\n  }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n    do {\n      puVar25 = puVar23;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar25 = *(undefined4 *)pdVar11;\n      puVar25[1] = uVar28;\n      puVar25[2] = uVar27;\n      puVar25[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar23 = puVar25 + 4;\n    } while (pdVar21 != pdVar31);\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar25[4] = *(undefined4 *)(pdVar6 + 4);\n    puVar25[5] = uVar26;\n    uVar27 = puVar22[0xb];\n    uVar26 = puVar22[0xc];\n    uVar28 = puVar22[0xd];\n    *puVar12 = puVar22[10];\n    puVar12[1] = uVar27;\n    puVar12[2] = uVar26;\n    puVar12[3] = uVar28;\n    puVar25 = puVar13 + (iVar29 + 1) * 10 + 10;\n    pdVar11 = pdVar6;\n    puVar12 = puVar24;\n    puVar23 = puVar24;\n  }" { (do_statement "do {\n      puVar25 = puVar23;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar25 = *(undefined4 *)pdVar11;\n      puVar25[1] = uVar28;\n      puVar25[2] = uVar27;\n      puVar25[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar23 = puVar25 + 4;\n    } while (pdVar21 != pdVar31);" do (compound_statement "{\n      puVar25 = puVar23;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar25 = *(undefined4 *)pdVar11;\n      puVar25[1] = uVar28;\n      puVar25[2] = uVar27;\n      puVar25[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar23 = puVar25 + 4;\n    }" { (expression_statement "puVar25 = puVar23;" (assignment_expression "puVar25 = puVar23" identifier = identifier) ;) (expression_statement "pdVar21 = pdVar11 + 2;" (assignment_expression "pdVar21 = pdVar11 + 2" identifier = (binary_expression "pdVar11 + 2" identifier + number_literal)) ;) (expression_statement "uVar28 = *(undefined4 *)((int)pdVar11 + 4);" (assignment_expression "uVar28 = *(undefined4 *)((int)pdVar11 + 4)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar11 + 4)" * (cast_expression "(undefined4 *)((int)pdVar11 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar11 + 4)" ( (binary_expression "(int)pdVar11 + 4" (cast_expression "(int)pdVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar27 = *(undefined4 *)(pdVar11 + 1);" (assignment_expression "uVar27 = *(undefined4 *)(pdVar11 + 1)" identifier = (pointer_expression "*(undefined4 *)(pdVar11 + 1)" * (cast_expression "(undefined4 *)(pdVar11 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar11 + 1)" ( (binary_expression "pdVar11 + 1" identifier + number_literal) ))))) ;) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar11 + 0xc)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar11 + 0xc)" * (cast_expression "(undefined4 *)((int)pdVar11 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar11 + 0xc)" ( (binary_expression "(int)pdVar11 + 0xc" (cast_expression "(int)pdVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*puVar25 = *(undefined4 *)pdVar11;" (assignment_expression "*puVar25 = *(undefined4 *)pdVar11" (pointer_expression "*puVar25" * identifier) = (pointer_expression "*(undefined4 *)pdVar11" * (cast_expression "(undefined4 *)pdVar11" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar25[1] = uVar28;" (assignment_expression "puVar25[1] = uVar28" (subscript_expression "puVar25[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar25[2] = uVar27;" (assignment_expression "puVar25[2] = uVar27" (subscript_expression "puVar25[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar25[3] = uVar26;" (assignment_expression "puVar25[3] = uVar26" (subscript_expression "puVar25[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pdVar11 = pdVar21;" (assignment_expression "pdVar11 = pdVar21" identifier = identifier) ;) (expression_statement "puVar23 = puVar25 + 4;" (assignment_expression "puVar23 = puVar25 + 4" identifier = (binary_expression "puVar25 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pdVar21 != pdVar31)" ( (binary_expression "pdVar21 != pdVar31" identifier != identifier) )) ;) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar6 + 0x24)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar6 + 0x24)" * (cast_expression "(undefined4 *)((int)pdVar6 + 0x24)" ( (type_descriptor "undefined4 *" 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) ))))) ;) (expression_statement "puVar25[4] = *(undefined4 *)(pdVar6 + 4);" (assignment_expression "puVar25[4] = *(undefined4 *)(pdVar6 + 4)" (subscript_expression "puVar25[4]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(pdVar6 + 4)" * (cast_expression "(undefined4 *)(pdVar6 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar6 + 4)" ( (binary_expression "pdVar6 + 4" identifier + number_literal) ))))) ;) (expression_statement "puVar25[5] = uVar26;" (assignment_expression "puVar25[5] = uVar26" (subscript_expression "puVar25[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar27 = puVar22[0xb];" (assignment_expression "uVar27 = puVar22[0xb]" identifier = (subscript_expression "puVar22[0xb]" identifier [ number_literal ])) ;) (expression_statement "uVar26 = puVar22[0xc];" (assignment_expression "uVar26 = puVar22[0xc]" identifier = (subscript_expression "puVar22[0xc]" identifier [ number_literal ])) ;) (expression_statement "uVar28 = puVar22[0xd];" (assignment_expression "uVar28 = puVar22[0xd]" identifier = (subscript_expression "puVar22[0xd]" identifier [ number_literal ])) ;) (expression_statement "*puVar12 = puVar22[10];" (assignment_expression "*puVar12 = puVar22[10]" (pointer_expression "*puVar12" * identifier) = (subscript_expression "puVar22[10]" identifier [ number_literal ])) ;) (expression_statement "puVar12[1] = uVar27;" (assignment_expression "puVar12[1] = uVar27" (subscript_expression "puVar12[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[2] = uVar26;" (assignment_expression "puVar12[2] = uVar26" (subscript_expression "puVar12[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12[3] = uVar28;" (assignment_expression "puVar12[3] = uVar28" (subscript_expression "puVar12[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar25 = puVar13 + (iVar29 + 1) * 10 + 10;" (assignment_expression "puVar25 = puVar13 + (iVar29 + 1) * 10 + 10" identifier = (binary_expression "puVar13 + (iVar29 + 1) * 10 + 10" (binary_expression "puVar13 + (iVar29 + 1) * 10" identifier + (binary_expression "(iVar29 + 1) * 10" (parenthesized_expression "(iVar29 + 1)" ( (binary_expression "iVar29 + 1" identifier + number_literal) )) * number_literal)) + number_literal)) ;) (expression_statement "pdVar11 = pdVar6;" (assignment_expression "pdVar11 = pdVar6" identifier = identifier) ;) (expression_statement "puVar12 = puVar24;" (assignment_expression "puVar12 = puVar24" identifier = identifier) ;) (expression_statement "puVar23 = puVar24;" (assignment_expression "puVar23 = puVar24" identifier = identifier) ;) })) (do_statement "do {\n    puVar22 = puVar12;\n    pdVar21 = pdVar11;\n    pdVar11 = pdVar21 + 2;\n    uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n    uVar27 = *(undefined4 *)(pdVar21 + 1);\n    uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n    *puVar22 = *(undefined4 *)pdVar21;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    puVar12 = puVar22 + 4;\n  } while (pdVar11 != pdVar31);" do (compound_statement "{\n    puVar22 = puVar12;\n    pdVar21 = pdVar11;\n    pdVar11 = pdVar21 + 2;\n    uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n    uVar27 = *(undefined4 *)(pdVar21 + 1);\n    uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n    *puVar22 = *(undefined4 *)pdVar21;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    puVar12 = puVar22 + 4;\n  }" { (expression_statement "puVar22 = puVar12;" (assignment_expression "puVar22 = puVar12" identifier = identifier) ;) (expression_statement "pdVar21 = pdVar11;" (assignment_expression "pdVar21 = pdVar11" identifier = identifier) ;) (expression_statement "pdVar11 = pdVar21 + 2;" (assignment_expression "pdVar11 = pdVar21 + 2" identifier = (binary_expression "pdVar21 + 2" identifier + number_literal)) ;) (expression_statement "uVar28 = *(undefined4 *)((int)pdVar21 + 4);" (assignment_expression "uVar28 = *(undefined4 *)((int)pdVar21 + 4)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar21 + 4)" * (cast_expression "(undefined4 *)((int)pdVar21 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar21 + 4)" ( (binary_expression "(int)pdVar21 + 4" (cast_expression "(int)pdVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar27 = *(undefined4 *)(pdVar21 + 1);" (assignment_expression "uVar27 = *(undefined4 *)(pdVar21 + 1)" identifier = (pointer_expression "*(undefined4 *)(pdVar21 + 1)" * (cast_expression "(undefined4 *)(pdVar21 + 1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar21 + 1)" ( (binary_expression "pdVar21 + 1" identifier + number_literal) ))))) ;) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar21 + 0xc)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar21 + 0xc)" * (cast_expression "(undefined4 *)((int)pdVar21 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar21 + 0xc)" ( (binary_expression "(int)pdVar21 + 0xc" (cast_expression "(int)pdVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*puVar22 = *(undefined4 *)pdVar21;" (assignment_expression "*puVar22 = *(undefined4 *)pdVar21" (pointer_expression "*puVar22" * identifier) = (pointer_expression "*(undefined4 *)pdVar21" * (cast_expression "(undefined4 *)pdVar21" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar22[1] = uVar28;" (assignment_expression "puVar22[1] = uVar28" (subscript_expression "puVar22[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22[2] = uVar27;" (assignment_expression "puVar22[2] = uVar27" (subscript_expression "puVar22[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar22[3] = uVar26;" (assignment_expression "puVar22[3] = uVar26" (subscript_expression "puVar22[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar12 = puVar22 + 4;" (assignment_expression "puVar12 = puVar22 + 4" identifier = (binary_expression "puVar22 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(pdVar11 != pdVar31)" ( (binary_expression "pdVar11 != pdVar31" identifier != identifier) )) ;) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar21 + 0x14);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar21 + 0x14)" identifier = (pointer_expression "*(undefined4 *)((int)pdVar21 + 0x14)" * (cast_expression "(undefined4 *)((int)pdVar21 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar21 + 0x14)" ( (binary_expression "(int)pdVar21 + 0x14" (cast_expression "(int)pdVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042b0);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042b0)" identifier = (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) ;) (expression_statement "puVar22[4] = *(undefined4 *)pdVar11;" (assignment_expression "puVar22[4] = *(undefined4 *)pdVar11" (subscript_expression "puVar22[4]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)pdVar11" * (cast_expression "(undefined4 *)pdVar11" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar22[5] = uVar26;" (assignment_expression "puVar22[5] = uVar26" (subscript_expression "puVar22[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar28 = puVar13[1];" (assignment_expression "uVar28 = puVar13[1]" identifier = (subscript_expression "puVar13[1]" identifier [ number_literal ])) ;) (expression_statement "uVar27 = puVar13[2];" (assignment_expression "uVar27 = puVar13[2]" identifier = (subscript_expression "puVar13[2]" identifier [ number_literal ])) ;) (expression_statement "uVar26 = puVar13[3];" (assignment_expression "uVar26 = puVar13[3]" identifier = (subscript_expression "puVar13[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar23 = *puVar13;" (assignment_expression "*puVar23 = *puVar13" (pointer_expression "*puVar23" * identifier) = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "puVar23[1] = uVar28;" (assignment_expression "puVar23[1] = uVar28" (subscript_expression "puVar23[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar23[2] = uVar27;" (assignment_expression "puVar23[2] = uVar27" (subscript_expression "puVar23[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar23[3] = uVar26;" (assignment_expression "puVar23[3] = uVar26" (subscript_expression "puVar23[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar25[5] = 0;" (assignment_expression "puVar25[5] = 0" (subscript_expression "puVar25[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar13[4] = iVar38 + 1;" (assignment_expression "puVar13[4] = iVar38 + 1" (subscript_expression "puVar13[4]" identifier [ number_literal ]) = (binary_expression "iVar38 + 1" identifier + number_literal)) ;) (expression_statement "(*pcVar37)(pdVar7);" (call_expression "(*pcVar37)(pdVar7)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(pdVar7)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar8);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar8)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar36 + 0x3042b0)" * (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar8)" ( identifier ))) ;) (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar6);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar6)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar36 + 0x3042b0)" * (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(pdVar6)" ( identifier ))) ;) (labeled_statement "LAB_000a61cc:\n  uVar4 = FUN_000a2d58(iVar17,iVar5,puVar13,param_4);" statement_identifier : (expression_statement "uVar4 = FUN_000a2d58(iVar17,iVar5,puVar13,param_4);" (assignment_expression "uVar4 = FUN_000a2d58(iVar17,iVar5,puVar13,param_4)" identifier = (call_expression "FUN_000a2d58(iVar17,iVar5,puVar13,param_4)" identifier (argument_list "(iVar17,iVar5,puVar13,param_4)" ( identifier , identifier , identifier , identifier )))) ;)) (expression_statement "uStack_1d0 = uStack_1d0 & uVar4;" (assignment_expression "uStack_1d0 = uStack_1d0 & uVar4" identifier = (binary_expression "uStack_1d0 & uVar4" identifier & identifier)) ;) (expression_statement "(**(code **)(puVar36 + 0x3042b0))(puVar13);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(puVar13)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" ( (pointer_expression "**(code **)(puVar36 + 0x3042b0)" * (pointer_expression "*(code **)(puVar36 + 0x3042b0)" * (cast_expression "(code **)(puVar36 + 0x3042b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042b0)" ( (binary_expression "puVar36 + 0x3042b0" identifier + number_literal) ))))) )) (argument_list "(puVar13)" ( identifier ))) ;) (if_statement "if (uStack_1d0 == 0) goto LAB_000a5774;" if (parenthesized_expression "(uStack_1d0 == 0)" ( (binary_expression "uStack_1d0 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000a5774;" goto statement_identifier ;)) (expression_statement "iVar32 = *(int *)(pdStack_e8 + 2);" (assignment_expression "iVar32 = *(int *)(pdStack_e8 + 2)" identifier = (pointer_expression "*(int *)(pdStack_e8 + 2)" * (cast_expression "(int *)(pdStack_e8 + 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdStack_e8 + 2)" ( (binary_expression "pdStack_e8 + 2" identifier + number_literal) ))))) ;) (expression_statement "iVar29 = iVar32 * 0x28;" (assignment_expression "iVar29 = iVar32 * 0x28" identifier = (binary_expression "iVar32 * 0x28" identifier * number_literal)) ;) (if_statement "if ((*(int *)(param_2 + 0x244) == 2) && (*(int *)(pdStack_e8 + 4) == 0)) {\n    uVar4 = FUN_000a4c0c(iVar17,param_2,pdStack_e8,param_4);\n    uVar14 = FUN_000a4c0c(iVar17,param_2,pdStack_e8 + iVar32 * 5 + -5,param_4);\n    uStack_1d0 = uVar4 & uVar14 & 1;\n    iVar29 = *(int *)(pdStack_e8 + 2) * 0x28;\n  }" if (parenthesized_expression "((*(int *)(param_2 + 0x244) == 2) && (*(int *)(pdStack_e8 + 4) == 0))" ( (binary_expression "(*(int *)(param_2 + 0x244) == 2) && (*(int *)(pdStack_e8 + 4) == 0)" (parenthesized_expression "(*(int *)(param_2 + 0x244) == 2)" ( (binary_expression "*(int *)(param_2 + 0x244) == 2" (pointer_expression "*(int *)(param_2 + 0x244)" * (cast_expression "(int *)(param_2 + 0x244)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x244)" ( (binary_expression "param_2 + 0x244" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(int *)(pdStack_e8 + 4) == 0)" ( (binary_expression "*(int *)(pdStack_e8 + 4) == 0" (pointer_expression "*(int *)(pdStack_e8 + 4)" * (cast_expression "(int *)(pdStack_e8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdStack_e8 + 4)" ( (binary_expression "pdStack_e8 + 4" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n    uVar4 = FUN_000a4c0c(iVar17,param_2,pdStack_e8,param_4);\n    uVar14 = FUN_000a4c0c(iVar17,param_2,pdStack_e8 + iVar32 * 5 + -5,param_4);\n    uStack_1d0 = uVar4 & uVar14 & 1;\n    iVar29 = *(int *)(pdStack_e8 + 2) * 0x28;\n  }" { (expression_statement "uVar4 = FUN_000a4c0c(iVar17,param_2,pdStack_e8,param_4);" (assignment_expression "uVar4 = FUN_000a4c0c(iVar17,param_2,pdStack_e8,param_4)" identifier = (call_expression "FUN_000a4c0c(iVar17,param_2,pdStack_e8,param_4)" identifier (argument_list "(iVar17,param_2,pdStack_e8,param_4)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "uVar14 = FUN_000a4c0c(iVar17,param_2,pdStack_e8 + iVar32 * 5 + -5,param_4);" (assignment_expression "uVar14 = FUN_000a4c0c(iVar17,param_2,pdStack_e8 + iVar32 * 5 + -5,param_4)" identifier = (call_expression "FUN_000a4c0c(iVar17,param_2,pdStack_e8 + iVar32 * 5 + -5,param_4)" identifier (argument_list "(iVar17,param_2,pdStack_e8 + iVar32 * 5 + -5,param_4)" ( identifier , identifier , (binary_expression "pdStack_e8 + iVar32 * 5 + -5" (binary_expression "pdStack_e8 + iVar32 * 5" identifier + (binary_expression "iVar32 * 5" identifier * number_literal)) + number_literal) , identifier )))) ;) (expression_statement "uStack_1d0 = uVar4 & uVar14 & 1;" (assignment_expression "uStack_1d0 = uVar4 & uVar14 & 1" identifier = (binary_expression "uVar4 & uVar14 & 1" (binary_expression "uVar4 & uVar14" identifier & identifier) & number_literal)) ;) (expression_statement "iVar29 = *(int *)(pdStack_e8 + 2) * 0x28;" (assignment_expression "iVar29 = *(int *)(pdStack_e8 + 2) * 0x28" identifier = (binary_expression "*(int *)(pdStack_e8 + 2) * 0x28" (pointer_expression "*(int *)(pdStack_e8 + 2)" * (cast_expression "(int *)(pdStack_e8 + 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdStack_e8 + 2)" ( (binary_expression "pdStack_e8 + 2" identifier + number_literal) )))) * number_literal)) ;) })) (labeled_statement "LAB_000a6620:\n  pdStack_e8 = (double *)((int)pdStack_e8 + iVar29);" statement_identifier : (expression_statement "pdStack_e8 = (double *)((int)pdStack_e8 + iVar29);" (assignment_expression "pdStack_e8 = (double *)((int)pdStack_e8 + iVar29)" identifier = (cast_expression "(double *)((int)pdStack_e8 + iVar29)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdStack_e8 + iVar29)" ( (binary_expression "(int)pdStack_e8 + iVar29" (cast_expression "(int)pdStack_e8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;)) (if_statement "if (*(int *)((int)pdStack_e8 + 0x14) == 0) goto code_r0x000a6634;" if (parenthesized_expression "(*(int *)((int)pdStack_e8 + 0x14) == 0)" ( (binary_expression "*(int *)((int)pdStack_e8 + 0x14) == 0" (pointer_expression "*(int *)((int)pdStack_e8 + 0x14)" * (cast_expression "(int *)((int)pdStack_e8 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdStack_e8 + 0x14)" ( (binary_expression "(int)pdStack_e8 + 0x14" (cast_expression "(int)pdStack_e8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (goto_statement "goto code_r0x000a6634;" goto statement_identifier ;)) (goto_statement "goto LAB_000a4e98;" goto statement_identifier ;) (labeled_statement "code_r0x000a6634:\n  pcVar37 = *(code **)(puVar36 + 0x3042d8);" statement_identifier : (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042d8);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042d8)" identifier = (pointer_expression "*(code **)(puVar36 + 0x3042d8)" * (cast_expression "(code **)(puVar36 + 0x3042d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar36 + 0x3042d8)" ( (binary_expression "puVar36 + 0x3042d8" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_000a5778;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (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 (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 (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 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (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 (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (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 *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (pointer_expression * 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) + 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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 IDENT + LIT) )))) = (pointer_expression * 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) + LIT) )))) = 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = 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 IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (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) ))) ;) })) (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 , 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 = (binary_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 (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)) ;) }) 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 IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 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 *)) ) (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 ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , 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 = (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 (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) ;) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 = LIT) ;) (goto_statement goto 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 IDENT + LIT) , 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 = (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 ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ]) - (pointer_expression * IDENT)) ))) < IDENT) )) && (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( (binary_expression (subscript_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )) [ LIT ]) - (subscript_expression IDENT [ LIT ])) ))) < IDENT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = 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 = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = 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) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + 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) + LIT) )))) = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (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) + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( IDENT )) (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 (subscript_expression IDENT [ LIT ]) - (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= (call_expression IDENT (argument_list ( IDENT )))) )) || (parenthesized_expression ( (binary_expression IDENT <= (call_expression IDENT (argument_list ( IDENT )))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) - (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ]))) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( IDENT ))) < IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression (call_expression IDENT (argument_list ( IDENT ))) < IDENT)) ))) )) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (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 ( (binary_expression IDENT + LIT) , 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 ( (binary_expression IDENT + LIT) , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (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 ( IDENT ))) ;) })) (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 ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (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 ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (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) ))))) )) (compound_statement { (expression_statement (assignment_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 IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) }) (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (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) ))))) ;)) (goto_statement goto statement_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) ))))) ;) }) (else_clause else (if_statement if (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) ))))) )) (compound_statement { (expression_statement (assignment_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 IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) }) (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (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) ))))) ;)) (goto_statement goto statement_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) ))))) ;) }) (else_clause else (compound_statement { (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) / IDENT)) ;) }))))) (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 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 (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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) )))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT))) ;)) }) (else_clause else (compound_statement { (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 = (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 * IDENT) - (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= (call_expression IDENT (argument_list ( IDENT )))) )) || (parenthesized_expression ( (binary_expression IDENT <= (call_expression IDENT (argument_list ( IDENT )))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) - (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ]))) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( IDENT ))) < IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression (call_expression IDENT (argument_list ( IDENT ))) < IDENT)) ))) )) ;) }))) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_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 *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + (binary_expression (parenthesized_expression ( (binary_expression IDENT * (parenthesized_expression ( (binary_expression IDENT + IDENT) ))) )) / IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT * (parenthesized_expression ( (binary_expression IDENT + 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 IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) - (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_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 + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (call_expression IDENT (argument_list ( IDENT )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) - (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 + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( IDENT ))) < IDENT) )) ;) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + (binary_expression (parenthesized_expression ( (binary_expression IDENT * (parenthesized_expression ( (binary_expression IDENT + IDENT) ))) )) / IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT * (parenthesized_expression ( (binary_expression IDENT + 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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (parenthesized_expression ( (binary_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 = (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)) ;) (expression_statement (assignment_expression IDENT = (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 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 IDENT + (pointer_expression * IDENT))) ;) (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 (pointer_expression * IDENT) - IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (binary_expression IDENT * IDENT) - (binary_expression IDENT * IDENT))) )) (compound_statement { (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 = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= (binary_expression (binary_expression IDENT * IDENT) + (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) * (parenthesized_expression ( (binary_expression IDENT - IDENT) ))))) )) (compound_statement { (if_statement if (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) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT <= (binary_expression IDENT - IDENT)) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;)) (goto_statement goto statement_identifier ;) })))) (expression_statement (assignment_expression IDENT = (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 (if_statement if (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) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT / IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= (binary_expression IDENT - IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) }) (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT <= (binary_expression IDENT - IDENT)) )) (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) ))))) ;)) (goto_statement goto statement_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) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) / (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT / IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (parenthesized_expression ( (binary_expression (binary_expression IDENT * 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 + (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)) ;) (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 = (binary_expression IDENT * IDENT)) ;) (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 IDENT - IDENT)) ;) (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 IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (binary_expression IDENT * IDENT) - (binary_expression IDENT * IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= (call_expression IDENT (argument_list ( IDENT )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT * IDENT) - IDENT) )) - (binary_expression IDENT * IDENT)) )) + IDENT) )) / IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT * IDENT) - IDENT) )) - (binary_expression IDENT * IDENT)) )) + IDENT) )) / IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) * IDENT) + IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (binary_expression IDENT + LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))))) ;) }))) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (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 ( IDENT ))) ;)) (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) ))))) ;)) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement 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 IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto 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 ( IDENT , (binary_expression IDENT + LIT) , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (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 ( IDENT ))) ;) (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 = 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 (binary_expression (binary_expression IDENT * IDENT) - (binary_expression IDENT * IDENT)) <= LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT * LIT) ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )) [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )) [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) * (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) + (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) * (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )) [ LIT ]) = 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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) }) (else_clause else (compound_statement { (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 = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) * (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) + (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) * (parenthesized_expression ( (binary_expression IDENT - IDENT) ))))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression 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) ;) })) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) * (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) + (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) * (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )) [ LIT ]) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 ( (binary_expression IDENT - IDENT) , (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) , (binary_expression IDENT - IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression 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 = (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) )))) / 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 = (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 / (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 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)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (binary_expression IDENT + LIT)) )) (compound_statement { (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 = (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 , LIT ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))))) ;) }))) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + 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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (unary_expression ~ IDENT) < (binary_expression IDENT + LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (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 ( IDENT , (binary_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)) )) (compound_statement { (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 ( IDENT ))) ;)) (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) ))))) ;)) (goto_statement goto statement_identifier ;) })) }) (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 IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))))) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (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 IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) }))) (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 ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) * IDENT) )) / (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) 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) ) (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression IDENT * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression IDENT * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )) [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) * (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) + (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) * (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )) [ LIT ]) = 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 = (binary_expression IDENT + LIT)) ;) }))) }) (else_clause else (compound_statement { (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 = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) * (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) + (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) * (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) <= IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )) [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )) [ LIT ]) = 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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) * (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) + (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) * (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )) [ LIT ]) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 ( (binary_expression IDENT - IDENT) , (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) , (binary_expression IDENT - IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression 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 = (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) )))) / 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 = (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 / (parenthesized_expression ( (binary_expression IDENT + IDENT) ))) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( 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 = (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + 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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (unary_expression ~ IDENT) < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (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 ( IDENT , (binary_expression IDENT + LIT) , LIT ))))) ;) }))) }))) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (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 ( IDENT ))) ;)) (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) ))))) ;)) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (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 IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (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 ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) * IDENT) )) / (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) 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) ) (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression IDENT * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression IDENT * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) })) (labeled_statement statement_identifier : (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 (binary_expression IDENT + LIT) == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression IDENT * LIT) ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )) [ LIT ])) ;) }) while (parenthesized_expression ( BOOL )) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) }) (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 IDENT + LIT) ))))) ;) })))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( 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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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)) ;) }) while (parenthesized_expression ( (binary_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 (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 (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = 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 ( IDENT , (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) , IDENT , 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) , (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) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (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) ))))) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (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) ))) ;) })) (return_statement return IDENT ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT << LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT << LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + IDENT)) ;) (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 = (binary_expression (binary_expression IDENT * LIT) + 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) + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) ))) )) [ LIT ]) = 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) + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_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 *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression IDENT + 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 ( IDENT , (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 , 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) , (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 ( 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 ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (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) ;) (do_statement do (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = 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 (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 (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 (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 (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = 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 (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 (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 = (binary_expression IDENT + (binary_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 - 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 + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) - IDENT) )) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (do_statement do (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = 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 (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 (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 (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 (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (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) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = 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 (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 (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) + 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) ;) (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 (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 (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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)) ;) }) while (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 (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 (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (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 ))) ;) (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 ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;)) (expression_statement (assignment_expression IDENT = (binary_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 == 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 = (binary_expression IDENT * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) && (parenthesized_expression ( (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 IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT & 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)) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) (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) ))))) ;)) (goto_statement goto statement_identifier ;) })))
(function_definition "uint FUN_000a4c0c(undefined4 param_1,int param_2,undefined4 *param_3,undefined4 param_4)\n\n{\n  bool bVar1;\n  bool bVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  double *pdVar6;\n  double *pdVar7;\n  double *pdVar8;\n  int iVar9;\n  double *pdVar10;\n  double *pdVar11;\n  undefined4 *puVar12;\n  undefined4 *puVar13;\n  uint uVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  int iVar18;\n  int iVar19;\n  int iVar20;\n  double *pdVar21;\n  undefined4 *puVar22;\n  undefined4 *puVar23;\n  undefined4 *puVar24;\n  undefined4 *puVar25;\n  undefined4 uVar26;\n  undefined4 uVar27;\n  undefined4 uVar28;\n  int iVar29;\n  uint uVar30;\n  double *pdVar31;\n  int iVar32;\n  int iVar33;\n  uint uVar34;\n  int iVar35;\n  undefined *puVar36;\n  code *pcVar37;\n  int iVar38;\n  double dVar39;\n  double dVar40;\n  undefined8 uVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  undefined8 uVar45;\n  double dVar46;\n  double dVar47;\n  double dVar48;\n  double dVar49;\n  double dVar50;\n  double dVar51;\n  double dVar52;\n  double dVar53;\n  double dVar54;\n  double dVar55;\n  double dVar56;\n  double dVar57;\n  double dVar58;\n  double dVar59;\n  undefined8 uVar60;\n  double dVar61;\n  double dVar62;\n  double dVar63;\n  double dVar64;\n  double dStack_2b8;\n  double dStack_2b0;\n  double dStack_2a8;\n  double dStack_2a0;\n  double dStack_288;\n  double dStack_280;\n  double dStack_278;\n  double dStack_270;\n  double dStack_260;\n  double dStack_258;\n  double dStack_250;\n  double dStack_248;\n  double dStack_240;\n  double dStack_238;\n  uint uStack_22c;\n  uint uStack_1d0;\n  int iStack_188;\n  double *pdStack_e8;\n  double local_d8 [2];\n  undefined4 local_c8;\n  double local_b0;\n  double local_88;\n  double local_80;\n  double local_58;\n  double adStack_38 [2];\n  undefined4 local_24;\n  int local_c;\n  \n  puVar36 = PTR___stack_chk_guard_003a9230;\n  pdStack_e8 = local_d8;\n  local_c = *(int *)PTR___stack_chk_guard_003a9230;\n  puVar13 = param_3;\n  pdVar6 = pdStack_e8;\n  pdVar7 = pdStack_e8;\n  do {\n    do {\n      pdVar8 = pdVar6;\n      puVar12 = puVar13;\n      puVar13 = puVar12 + 4;\n      uVar28 = puVar12[1];\n      uVar27 = puVar12[2];\n      uVar26 = puVar12[3];\n      *(undefined4 *)pdVar8 = *puVar12;\n      *(undefined4 *)((int)pdVar8 + 4) = uVar28;\n      *(undefined4 *)(pdVar8 + 1) = uVar27;\n      *(undefined4 *)((int)pdVar8 + 0xc) = uVar26;\n      pdVar6 = pdVar8 + 2;\n    } while (puVar13 != param_3 + 8);\n    pdVar7 = pdVar7 + 5;\n    uVar26 = puVar12[5];\n    *(undefined4 *)(pdVar8 + 2) = *puVar13;\n    *(undefined4 *)((int)pdVar8 + 0x14) = uVar26;\n    puVar13 = param_3;\n    pdVar6 = pdVar7;\n  } while (pdVar7 != adStack_38);\n  dVar39 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x47c8);\n  local_24 = 0;\n  local_c8 = 4;\n  local_b0 = local_b0 + dVar39;\n  local_88 = local_88 + dVar39;\n  local_80 = local_80 + dVar39;\n  local_58 = local_58 + dVar39;\n  uVar4 = FUN_000a2d58();\n  if (local_c == *(int *)puVar36) {\n    return uVar4;\n  }\n  iVar17 = local_c;\n  puVar36 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  if (*(int *)(iVar17 + 0x3350) != 0) {\n    (**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x168f,*(int *)(puVar36 + 0x303bd8) + 0x3dd8);\n  }\n  iVar5 = (**(code **)(puVar36 + 0x3044ec))(0,param_2);\n  puVar13 = (undefined4 *)(iVar5 + 0x48);\n  puVar12 = (undefined4 *)(param_2 + 0xa0);\n  do {\n    puVar23 = puVar12;\n    puVar22 = puVar13;\n    puVar12 = puVar23 + 4;\n    uVar28 = puVar23[1];\n    uVar27 = puVar23[2];\n    uVar26 = puVar23[3];\n    *puVar22 = *puVar23;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    puVar13 = puVar22 + 4;\n  } while (puVar12 != (undefined4 *)(param_2 + 0xf0));\n  uVar26 = puVar23[5];\n  iVar18 = *(int *)(iVar5 + 0x1a8);\n  puVar22[4] = *puVar12;\n  puVar22[5] = uVar26;\n  if (iVar18 != 0) {\n    uVar26 = (**(code **)(puVar36 + 0x30423c))();\n    *(undefined4 *)(iVar5 + 0x1a8) = uVar26;\n  }\n  if (*(int *)(iVar5 + 0x1ac) != 0) {\n    uVar26 = (**(code **)(puVar36 + 0x304b20))(*(int *)(iVar5 + 0x1ac),0,0,1,param_4);\n    *(undefined4 *)(iVar5 + 0x1a8) = uVar26;\n  }\n  iVar18 = *(int *)((int)pdStack_e8 + 0x14);\n  *(undefined4 *)(iVar5 + 0xec) = 0;\n  *(undefined4 *)(iVar5 + 0xe8) = 0;\n  *(undefined4 *)(iVar5 + 0x1b4) = 0;\n  *(undefined4 *)(iVar5 + 0x1b0) = 0;\n  *(undefined4 *)(iVar5 + 0x240) = 2;\n  if (iVar18 != 0) {\n    iVar18 = *(int *)(puVar36 + 0x303bd0);\n    iVar19 = *(int *)(puVar36 + 0x303bd8);\n    uStack_1d0 = 1;\n    dVar39 = *(double *)(iVar18 + 0x13f8);\n    iVar15 = *(int *)(puVar36 + 0x303bd0);\n    dVar40 = *(double *)(iVar15 + 0x1410);\n    uVar41 = *(undefined8 *)(iVar19 + 0x34a0);\nLAB_000a4e98:\n    iVar29 = *(int *)(pdStack_e8 + 2);\n    if (iVar29 == 1) {\n      iVar29 = 0x28;\n      goto LAB_000a6620;\n    }\n    pdVar6 = (double *)(**(code **)(puVar36 + 0x3047fc))(iVar29 + 2,0x28);\n    if (pdVar6 != (double *)0x0) {\n      iVar32 = iVar29 * 0x28;\n      (**(code **)(puVar36 + 0x304648))(pdVar6,pdStack_e8,iVar32);\n      pdVar7 = pdVar6 + iVar29 * 5;\n      if ((ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8) < dVar39) &&\n         (ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]) < dVar39)) {\n        if (*(int *)(param_2 + 0x248) - 1U < 2) {\n          pdVar8 = pdStack_e8 + 5;\n          do {\n            pdVar21 = pdVar7;\n            pdVar11 = pdVar8;\n            pdVar8 = pdVar11 + 2;\n            uVar28 = *(undefined4 *)(pdVar11 + 1);\n            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n            uVar27 = *(undefined4 *)pdVar11;\n            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);\n            *(undefined4 *)(pdVar21 + 1) = uVar28;\n            *(undefined4 *)pdVar21 = uVar27;\n            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;\n            pdVar7 = pdVar21 + 2;\n          } while (pdVar8 != pdStack_e8 + 9);\n          iVar32 = iVar32 + 0x28;\n          uVar26 = *(undefined4 *)pdVar8;\n          pdVar7 = pdVar6 + iVar29 * 5 + 5;\n          *(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14);\n          *(undefined4 *)(pdVar21 + 2) = uVar26;\n          iVar29 = iVar29 + 1;\n        }\n        iStack_188 = 1;\n        bVar2 = true;\n        bVar1 = iVar29 < 2;\n        *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n        if (bVar1) goto LAB_000a6124;\nLAB_000a4fe8:\n        dVar61 = *(double *)(iVar18 + 0x13f8);\n        dStack_260 = pdVar6[5] - *pdVar6;\n        dStack_258 = pdVar6[6] - pdVar6[1];\n        if ((dVar61 <= ABS(dStack_260)) || (dVar61 <= ABS(dStack_258))) {\n          iVar38 = 1;\n        }\n        else {\n          iVar38 = 1;\n          pdVar7 = pdVar6 + 10;\n          do {\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));\n        }\nLAB_000a5110:\n        uVar4 = iVar29 * 2;\n        pdVar7 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        pdVar8 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        if (pdVar7 == (double *)0x0) {\n          if (pdVar8 != (double *)0x0) {\n            (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n          uVar26 = 0x1c93;\n          goto LAB_000a5724;\n        }\n        if (pdVar8 == (double *)0x0) {\n          (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n          goto LAB_000a6cbc;\n        }\n        if (ABS(dStack_260) < *(double *)(iVar18 + 0x13f8)) {\n          dVar61 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else if (ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)) {\n          dVar52 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }\nLAB_000a51b0:\n        dVar42 = (double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18);\n        iVar16 = *(int *)(param_2 + 0x24c) * *(int *)(param_2 + 0x24c);\n        dVar42 = dVar42 * *(double *)(param_2 + 0x1b0) *\n                 *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400);\n        dVar46 = (double)iVar16;\n        if (iVar16 < 0) {\n          dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418);\n        }\n        dVar46 = dVar46 * dVar42 * dVar42;\n        if (*(int *)(param_2 + 0x244) == 3) {\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            iVar16 = iVar29 + -2;\n            dVar50 = pdVar11[1];\n            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);\n            pdVar21 = pdVar6 + iVar16 * 5;\n            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            dVar50 = pdVar21[1];\n            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            goto LAB_000a5220;\n          }\n        }\n        else {\nLAB_000a5220:\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n        }\n        dVar43 = dVar42 * dVar42;\n        dVar53 = dVar43 / (dVar61 * dVar61 + *(double *)(iVar16 + 0x1438));\n        dVar64 = SQRT(dVar53);\n        if (dVar53 < 0.0) {\n          (**(code **)(puVar36 + 0x304770))();\n        }\n        dVar61 = dVar61 * dVar64;\n        pdVar11 = pdVar6 + iVar38 * 5;\n        dVar58 = *pdVar11;\n        dVar62 = pdVar11[1];\n        dVar57 = dVar61 + pdVar6[1];\n        dVar55 = pdVar6[1] - dVar61;\n        dVar53 = dVar64 + *pdVar6;\n        dStack_238 = dVar62 - dVar61;\n        dStack_240 = dVar58 - dVar64;\n        dVar56 = *pdVar6 - dVar64;\n        dVar51 = dVar56;\n        dVar50 = dVar57;\n        dStack_250 = dVar64 + dVar58;\n        dStack_248 = dVar61 + dVar62;\n        if (0.0 < dVar64 * dStack_258 - dVar61 * dStack_260) {\n          dVar51 = dVar53;\n          dVar50 = dVar55;\n          dVar53 = dVar56;\n          dVar55 = dVar57;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar64 + dVar58;\n          dStack_238 = dVar61 + dVar62;\n        }\n        iVar32 = iVar38 + 1;\n        *pdVar8 = dVar51;\n        pdVar8[1] = dVar55;\n        *pdVar7 = dVar53;\n        pdVar7[1] = dVar50;\n        if (iVar32 < iVar29) {\n          iVar20 = *(int *)(puVar36 + 0x303bd8);\n          iVar33 = 1;\n          iVar35 = 1;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78);\n          dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar4;\n          do {\n            dVar44 = pdVar11[6];\n            dVar47 = pdVar11[5];\n            dVar48 = dVar44 - dVar62;\n            dVar54 = dVar47 - dVar58;\n            dVar49 = dVar47 - dVar58;\n            dVar56 = dStack_238;\n            dVar57 = dStack_240;\n            dVar59 = dStack_248;\n            dVar63 = dStack_250;\n            if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar63;\n            dStack_248 = dVar59;\n            dStack_240 = dVar57;\n            dStack_238 = dVar56;\n            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;\n            pdVar11 = pdVar11 + 5;\n            iVar32 = iVar32 + 1;\n            dVar58 = pdVar6[iVar38 * 5];\n            dVar62 = (pdVar6 + iVar38 * 5)[1];\n          } while( true );\n        }\n        iVar38 = 4;\n        iVar32 = 0x10;\n        iVar35 = 0x10;\n        iVar29 = 2;\n        goto LAB_000a5a70;\n      }\n      bVar1 = iVar29 < 2;\n      iStack_188 = 0;\n      bVar2 = false;\n      *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n      if (!bVar1) goto LAB_000a4fe8;\nLAB_000a6124:\n      if (iVar29 != 1) {\n        iVar38 = 1;\n        dStack_258 = 0.0;\n        dStack_260 = 0.0;\n        goto LAB_000a5110;\n      }\n      iVar38 = 1;\n      dStack_258 = 0.0;\n      iVar16 = *(int *)(param_2 + 0x244);\n      dStack_260 = 0.0;\njoined_r0x000a50f8:\n      if (iVar16 == 2) {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n        if (!bVar2) {\n          iVar38 = iVar38 + -1;\n          goto LAB_000a5110;\n        }\n      }\n      else {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n      }\n      puVar13 = (undefined4 *)(*pcVar37)(0x28);\n      pdVar7 = pdVar6;\n      puVar12 = puVar13;\n      do {\n        puVar22 = puVar12;\n        pdVar8 = pdVar7;\n        pdVar7 = pdVar8 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar8 + 4);\n        uVar27 = *(undefined4 *)(pdVar8 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar8 + 0xc);\n        *puVar22 = *(undefined4 *)pdVar8;\n        puVar22[1] = uVar28;\n        puVar22[2] = uVar27;\n        puVar22[3] = uVar26;\n        puVar12 = puVar22 + 4;\n      } while (pdVar7 != pdVar6 + 4);\n      uVar26 = *(undefined4 *)((int)pdVar8 + 0x14);\n      pcVar37 = *(code **)(puVar36 + 0x3042b0);\n      puVar22[4] = *(undefined4 *)pdVar7;\n      puVar22[5] = uVar26;\n      puVar13[4] = 0;\n      (*pcVar37)(pdVar6);\n      goto LAB_000a61cc;\n    }\n    uVar26 = 0x1c57;\nLAB_000a5724:\n    (**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               uVar26,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);\n    uStack_1d0 = 0;\n    goto LAB_000a5774;\n  }\n  uStack_1d0 = 1;\nLAB_000a5774:\n  pcVar37 = *(code **)(puVar36 + 0x3042d8);\nLAB_000a5778:\n  (*pcVar37)(iVar5);\n  if (*(int *)(iVar17 + 0x3350) != 0) {\n    (**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x16b4,*(int *)(puVar36 + 0x303bd8) + 0x3df8);\n  }\n  return uStack_1d0;\nLAB_000a5a58:\n  iVar29 = iVar35 + 1;\n  iVar35 = iVar35 << 4;\n  iVar32 = iVar33 << 4;\n  iVar38 = iVar33 + 1 + iVar29;\nLAB_000a5a70:\n  pcVar37 = *(code **)(puVar36 + 0x3047fc);\n  iVar38 = iStack_188 * 2 + iVar38;\n  *(double *)((int)pdVar7 + iVar35) = dStack_250;\n  ((double *)((int)pdVar7 + iVar35))[1] = dStack_248;\n  *(double *)((int)pdVar8 + iVar32) = dStack_240;\n  ((double *)((int)pdVar8 + iVar32))[1] = dStack_238;\n  puVar13 = (undefined4 *)(*pcVar37)(iVar38 + 2,0x28);\n  if (puVar13 == (undefined4 *)0x0) {\n    (**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               0x1dbc,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n    uStack_1d0 = 0;\n    goto LAB_000a5774;\n  }\n  pdVar31 = pdVar6 + 4;\n  pdVar11 = pdVar6;\n  puVar12 = puVar13;\n  pdVar21 = pdVar7;\n  puVar22 = puVar13;\n  do {\n    do {\n      puVar23 = puVar12;\n      pdVar10 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar10;\n      puVar12 = puVar23 + 4;\n    } while (pdVar10 != pdVar31);\n    pdVar10 = pdVar21 + 2;\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar23[4] = *(undefined4 *)pdVar31;\n    puVar23[5] = uVar26;\n    uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n    uVar27 = *(undefined4 *)(pdVar21 + 1);\n    uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n    *puVar22 = *(undefined4 *)pdVar21;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    pdVar11 = pdVar6;\n    puVar12 = puVar22 + 10;\n    pdVar21 = pdVar10;\n    puVar22 = puVar22 + 10;\n  } while (pdVar7 + iVar29 * 2 != pdVar10);\n  puVar22 = puVar13 + iVar29 * 10;\n  puVar12 = puVar22;\n  if (bVar2) {\n    do {\n      puVar23 = puVar12;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar12 = puVar23 + 4;\n    } while (pdVar21 != pdVar31);\n    iVar29 = iVar29 + 1;\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar23[4] = *(undefined4 *)(pdVar6 + 4);\n    puVar23[5] = uVar26;\n    uVar28 = puVar13[1];\n    uVar27 = puVar13[2];\n    uVar26 = puVar13[3];\n    puVar12 = puVar13 + iVar29 * 10;\n    *puVar22 = *puVar13;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n  }\n  iStack_188 = iVar38 - iStack_188;\n  if (iVar29 < iStack_188) {\n    pdVar11 = pdVar6;\n    puVar12 = puVar13 + iVar29 * 10;\n    pdVar21 = pdVar8 + ((iStack_188 + 0xfffffff) - iVar29) * 2;\n    puVar23 = puVar13 + iVar29 * 10;\n    do {\n      do {\n        puVar25 = puVar12;\n        pdVar10 = pdVar11 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n        uVar27 = *(undefined4 *)(pdVar11 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n        *puVar25 = *(undefined4 *)pdVar11;\n        puVar25[1] = uVar28;\n        puVar25[2] = uVar27;\n        puVar25[3] = uVar26;\n        pdVar11 = pdVar10;\n        puVar12 = puVar25 + 4;\n      } while (pdVar10 != pdVar31);\n      pdVar10 = pdVar21 + -2;\n      uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n      puVar25[4] = *(undefined4 *)pdVar31;\n      puVar25[5] = uVar26;\n      uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n      uVar27 = *(undefined4 *)(pdVar21 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar21;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar6;\n      puVar12 = puVar23 + 10;\n      pdVar21 = pdVar10;\n      puVar23 = puVar23 + 10;\n    } while (pdVar8 + -2 != pdVar10);\n    puVar12 = puVar13 + iStack_188 * 10;\n    iVar29 = iStack_188;\n  }\n  puVar24 = puVar13 + (iVar29 + 1) * 10;\n  pdVar11 = pdVar6;\n  puVar23 = puVar12;\n  puVar25 = puVar24;\n  if (bVar2) {\n    do {\n      puVar25 = puVar23;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar25 = *(undefined4 *)pdVar11;\n      puVar25[1] = uVar28;\n      puVar25[2] = uVar27;\n      puVar25[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar23 = puVar25 + 4;\n    } while (pdVar21 != pdVar31);\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar25[4] = *(undefined4 *)(pdVar6 + 4);\n    puVar25[5] = uVar26;\n    uVar27 = puVar22[0xb];\n    uVar26 = puVar22[0xc];\n    uVar28 = puVar22[0xd];\n    *puVar12 = puVar22[10];\n    puVar12[1] = uVar27;\n    puVar12[2] = uVar26;\n    puVar12[3] = uVar28;\n    puVar25 = puVar13 + (iVar29 + 1) * 10 + 10;\n    pdVar11 = pdVar6;\n    puVar12 = puVar24;\n    puVar23 = puVar24;\n  }\n  do {\n    puVar22 = puVar12;\n    pdVar21 = pdVar11;\n    pdVar11 = pdVar21 + 2;\n    uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n    uVar27 = *(undefined4 *)(pdVar21 + 1);\n    uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n    *puVar22 = *(undefined4 *)pdVar21;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    puVar12 = puVar22 + 4;\n  } while (pdVar11 != pdVar31);\n  uVar26 = *(undefined4 *)((int)pdVar21 + 0x14);\n  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n  puVar22[4] = *(undefined4 *)pdVar11;\n  puVar22[5] = uVar26;\n  uVar28 = puVar13[1];\n  uVar27 = puVar13[2];\n  uVar26 = puVar13[3];\n  *puVar23 = *puVar13;\n  puVar23[1] = uVar28;\n  puVar23[2] = uVar27;\n  puVar23[3] = uVar26;\n  puVar25[5] = 0;\n  puVar13[4] = iVar38 + 1;\n  (*pcVar37)(pdVar7);\n  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n  (**(code **)(puVar36 + 0x3042b0))(pdVar6);\nLAB_000a61cc:\n  uVar4 = FUN_000a2d58(iVar17,iVar5,puVar13,param_4);\n  uStack_1d0 = uStack_1d0 & uVar4;\n  (**(code **)(puVar36 + 0x3042b0))(puVar13);\n  if (uStack_1d0 == 0) goto LAB_000a5774;\n  iVar32 = *(int *)(pdStack_e8 + 2);\n  iVar29 = iVar32 * 0x28;\n  if ((*(int *)(param_2 + 0x244) == 2) && (*(int *)(pdStack_e8 + 4) == 0)) {\n    uVar4 = FUN_000a4c0c(iVar17,param_2,pdStack_e8,param_4);\n    uVar14 = FUN_000a4c0c(iVar17,param_2,pdStack_e8 + iVar32 * 5 + -5,param_4);\n    uStack_1d0 = uVar4 & uVar14 & 1;\n    iVar29 = *(int *)(pdStack_e8 + 2) * 0x28;\n  }\nLAB_000a6620:\n  pdStack_e8 = (double *)((int)pdStack_e8 + iVar29);\n  if (*(int *)((int)pdStack_e8 + 0x14) == 0) goto code_r0x000a6634;\n  goto LAB_000a4e98;\ncode_r0x000a6634:\n  pcVar37 = *(code **)(puVar36 + 0x3042d8);\n  goto LAB_000a5778;\n}" (type_identifier "uint") (function_declarator "FUN_000a4c0c(undefined4 param_1,int param_2,undefined4 *param_3,undefined4 param_4)" (identifier "FUN_000a4c0c") (parameter_list "(undefined4 param_1,int param_2,undefined4 *param_3,undefined4 param_4)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 *param_3" (type_identifier "undefined4") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) () ")"))) (compound_statement "{\n  bool bVar1;\n  bool bVar2;\n  int iVar3;\n  uint uVar4;\n  int iVar5;\n  double *pdVar6;\n  double *pdVar7;\n  double *pdVar8;\n  int iVar9;\n  double *pdVar10;\n  double *pdVar11;\n  undefined4 *puVar12;\n  undefined4 *puVar13;\n  uint uVar14;\n  int iVar15;\n  int iVar16;\n  int iVar17;\n  int iVar18;\n  int iVar19;\n  int iVar20;\n  double *pdVar21;\n  undefined4 *puVar22;\n  undefined4 *puVar23;\n  undefined4 *puVar24;\n  undefined4 *puVar25;\n  undefined4 uVar26;\n  undefined4 uVar27;\n  undefined4 uVar28;\n  int iVar29;\n  uint uVar30;\n  double *pdVar31;\n  int iVar32;\n  int iVar33;\n  uint uVar34;\n  int iVar35;\n  undefined *puVar36;\n  code *pcVar37;\n  int iVar38;\n  double dVar39;\n  double dVar40;\n  undefined8 uVar41;\n  double dVar42;\n  double dVar43;\n  double dVar44;\n  undefined8 uVar45;\n  double dVar46;\n  double dVar47;\n  double dVar48;\n  double dVar49;\n  double dVar50;\n  double dVar51;\n  double dVar52;\n  double dVar53;\n  double dVar54;\n  double dVar55;\n  double dVar56;\n  double dVar57;\n  double dVar58;\n  double dVar59;\n  undefined8 uVar60;\n  double dVar61;\n  double dVar62;\n  double dVar63;\n  double dVar64;\n  double dStack_2b8;\n  double dStack_2b0;\n  double dStack_2a8;\n  double dStack_2a0;\n  double dStack_288;\n  double dStack_280;\n  double dStack_278;\n  double dStack_270;\n  double dStack_260;\n  double dStack_258;\n  double dStack_250;\n  double dStack_248;\n  double dStack_240;\n  double dStack_238;\n  uint uStack_22c;\n  uint uStack_1d0;\n  int iStack_188;\n  double *pdStack_e8;\n  double local_d8 [2];\n  undefined4 local_c8;\n  double local_b0;\n  double local_88;\n  double local_80;\n  double local_58;\n  double adStack_38 [2];\n  undefined4 local_24;\n  int local_c;\n  \n  puVar36 = PTR___stack_chk_guard_003a9230;\n  pdStack_e8 = local_d8;\n  local_c = *(int *)PTR___stack_chk_guard_003a9230;\n  puVar13 = param_3;\n  pdVar6 = pdStack_e8;\n  pdVar7 = pdStack_e8;\n  do {\n    do {\n      pdVar8 = pdVar6;\n      puVar12 = puVar13;\n      puVar13 = puVar12 + 4;\n      uVar28 = puVar12[1];\n      uVar27 = puVar12[2];\n      uVar26 = puVar12[3];\n      *(undefined4 *)pdVar8 = *puVar12;\n      *(undefined4 *)((int)pdVar8 + 4) = uVar28;\n      *(undefined4 *)(pdVar8 + 1) = uVar27;\n      *(undefined4 *)((int)pdVar8 + 0xc) = uVar26;\n      pdVar6 = pdVar8 + 2;\n    } while (puVar13 != param_3 + 8);\n    pdVar7 = pdVar7 + 5;\n    uVar26 = puVar12[5];\n    *(undefined4 *)(pdVar8 + 2) = *puVar13;\n    *(undefined4 *)((int)pdVar8 + 0x14) = uVar26;\n    puVar13 = param_3;\n    pdVar6 = pdVar7;\n  } while (pdVar7 != adStack_38);\n  dVar39 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x47c8);\n  local_24 = 0;\n  local_c8 = 4;\n  local_b0 = local_b0 + dVar39;\n  local_88 = local_88 + dVar39;\n  local_80 = local_80 + dVar39;\n  local_58 = local_58 + dVar39;\n  uVar4 = FUN_000a2d58();\n  if (local_c == *(int *)puVar36) {\n    return uVar4;\n  }\n  iVar17 = local_c;\n  puVar36 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  if (*(int *)(iVar17 + 0x3350) != 0) {\n    (**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x168f,*(int *)(puVar36 + 0x303bd8) + 0x3dd8);\n  }\n  iVar5 = (**(code **)(puVar36 + 0x3044ec))(0,param_2);\n  puVar13 = (undefined4 *)(iVar5 + 0x48);\n  puVar12 = (undefined4 *)(param_2 + 0xa0);\n  do {\n    puVar23 = puVar12;\n    puVar22 = puVar13;\n    puVar12 = puVar23 + 4;\n    uVar28 = puVar23[1];\n    uVar27 = puVar23[2];\n    uVar26 = puVar23[3];\n    *puVar22 = *puVar23;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    puVar13 = puVar22 + 4;\n  } while (puVar12 != (undefined4 *)(param_2 + 0xf0));\n  uVar26 = puVar23[5];\n  iVar18 = *(int *)(iVar5 + 0x1a8);\n  puVar22[4] = *puVar12;\n  puVar22[5] = uVar26;\n  if (iVar18 != 0) {\n    uVar26 = (**(code **)(puVar36 + 0x30423c))();\n    *(undefined4 *)(iVar5 + 0x1a8) = uVar26;\n  }\n  if (*(int *)(iVar5 + 0x1ac) != 0) {\n    uVar26 = (**(code **)(puVar36 + 0x304b20))(*(int *)(iVar5 + 0x1ac),0,0,1,param_4);\n    *(undefined4 *)(iVar5 + 0x1a8) = uVar26;\n  }\n  iVar18 = *(int *)((int)pdStack_e8 + 0x14);\n  *(undefined4 *)(iVar5 + 0xec) = 0;\n  *(undefined4 *)(iVar5 + 0xe8) = 0;\n  *(undefined4 *)(iVar5 + 0x1b4) = 0;\n  *(undefined4 *)(iVar5 + 0x1b0) = 0;\n  *(undefined4 *)(iVar5 + 0x240) = 2;\n  if (iVar18 != 0) {\n    iVar18 = *(int *)(puVar36 + 0x303bd0);\n    iVar19 = *(int *)(puVar36 + 0x303bd8);\n    uStack_1d0 = 1;\n    dVar39 = *(double *)(iVar18 + 0x13f8);\n    iVar15 = *(int *)(puVar36 + 0x303bd0);\n    dVar40 = *(double *)(iVar15 + 0x1410);\n    uVar41 = *(undefined8 *)(iVar19 + 0x34a0);\nLAB_000a4e98:\n    iVar29 = *(int *)(pdStack_e8 + 2);\n    if (iVar29 == 1) {\n      iVar29 = 0x28;\n      goto LAB_000a6620;\n    }\n    pdVar6 = (double *)(**(code **)(puVar36 + 0x3047fc))(iVar29 + 2,0x28);\n    if (pdVar6 != (double *)0x0) {\n      iVar32 = iVar29 * 0x28;\n      (**(code **)(puVar36 + 0x304648))(pdVar6,pdStack_e8,iVar32);\n      pdVar7 = pdVar6 + iVar29 * 5;\n      if ((ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8) < dVar39) &&\n         (ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]) < dVar39)) {\n        if (*(int *)(param_2 + 0x248) - 1U < 2) {\n          pdVar8 = pdStack_e8 + 5;\n          do {\n            pdVar21 = pdVar7;\n            pdVar11 = pdVar8;\n            pdVar8 = pdVar11 + 2;\n            uVar28 = *(undefined4 *)(pdVar11 + 1);\n            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n            uVar27 = *(undefined4 *)pdVar11;\n            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);\n            *(undefined4 *)(pdVar21 + 1) = uVar28;\n            *(undefined4 *)pdVar21 = uVar27;\n            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;\n            pdVar7 = pdVar21 + 2;\n          } while (pdVar8 != pdStack_e8 + 9);\n          iVar32 = iVar32 + 0x28;\n          uVar26 = *(undefined4 *)pdVar8;\n          pdVar7 = pdVar6 + iVar29 * 5 + 5;\n          *(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14);\n          *(undefined4 *)(pdVar21 + 2) = uVar26;\n          iVar29 = iVar29 + 1;\n        }\n        iStack_188 = 1;\n        bVar2 = true;\n        bVar1 = iVar29 < 2;\n        *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n        if (bVar1) goto LAB_000a6124;\nLAB_000a4fe8:\n        dVar61 = *(double *)(iVar18 + 0x13f8);\n        dStack_260 = pdVar6[5] - *pdVar6;\n        dStack_258 = pdVar6[6] - pdVar6[1];\n        if ((dVar61 <= ABS(dStack_260)) || (dVar61 <= ABS(dStack_258))) {\n          iVar38 = 1;\n        }\n        else {\n          iVar38 = 1;\n          pdVar7 = pdVar6 + 10;\n          do {\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));\n        }\nLAB_000a5110:\n        uVar4 = iVar29 * 2;\n        pdVar7 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        pdVar8 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        if (pdVar7 == (double *)0x0) {\n          if (pdVar8 != (double *)0x0) {\n            (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n          uVar26 = 0x1c93;\n          goto LAB_000a5724;\n        }\n        if (pdVar8 == (double *)0x0) {\n          (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n          goto LAB_000a6cbc;\n        }\n        if (ABS(dStack_260) < *(double *)(iVar18 + 0x13f8)) {\n          dVar61 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else if (ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)) {\n          dVar52 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }\nLAB_000a51b0:\n        dVar42 = (double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18);\n        iVar16 = *(int *)(param_2 + 0x24c) * *(int *)(param_2 + 0x24c);\n        dVar42 = dVar42 * *(double *)(param_2 + 0x1b0) *\n                 *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400);\n        dVar46 = (double)iVar16;\n        if (iVar16 < 0) {\n          dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418);\n        }\n        dVar46 = dVar46 * dVar42 * dVar42;\n        if (*(int *)(param_2 + 0x244) == 3) {\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            iVar16 = iVar29 + -2;\n            dVar50 = pdVar11[1];\n            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);\n            pdVar21 = pdVar6 + iVar16 * 5;\n            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            dVar50 = pdVar21[1];\n            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            goto LAB_000a5220;\n          }\n        }\n        else {\nLAB_000a5220:\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n        }\n        dVar43 = dVar42 * dVar42;\n        dVar53 = dVar43 / (dVar61 * dVar61 + *(double *)(iVar16 + 0x1438));\n        dVar64 = SQRT(dVar53);\n        if (dVar53 < 0.0) {\n          (**(code **)(puVar36 + 0x304770))();\n        }\n        dVar61 = dVar61 * dVar64;\n        pdVar11 = pdVar6 + iVar38 * 5;\n        dVar58 = *pdVar11;\n        dVar62 = pdVar11[1];\n        dVar57 = dVar61 + pdVar6[1];\n        dVar55 = pdVar6[1] - dVar61;\n        dVar53 = dVar64 + *pdVar6;\n        dStack_238 = dVar62 - dVar61;\n        dStack_240 = dVar58 - dVar64;\n        dVar56 = *pdVar6 - dVar64;\n        dVar51 = dVar56;\n        dVar50 = dVar57;\n        dStack_250 = dVar64 + dVar58;\n        dStack_248 = dVar61 + dVar62;\n        if (0.0 < dVar64 * dStack_258 - dVar61 * dStack_260) {\n          dVar51 = dVar53;\n          dVar50 = dVar55;\n          dVar53 = dVar56;\n          dVar55 = dVar57;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar64 + dVar58;\n          dStack_238 = dVar61 + dVar62;\n        }\n        iVar32 = iVar38 + 1;\n        *pdVar8 = dVar51;\n        pdVar8[1] = dVar55;\n        *pdVar7 = dVar53;\n        pdVar7[1] = dVar50;\n        if (iVar32 < iVar29) {\n          iVar20 = *(int *)(puVar36 + 0x303bd8);\n          iVar33 = 1;\n          iVar35 = 1;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78);\n          dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar4;\n          do {\n            dVar44 = pdVar11[6];\n            dVar47 = pdVar11[5];\n            dVar48 = dVar44 - dVar62;\n            dVar54 = dVar47 - dVar58;\n            dVar49 = dVar47 - dVar58;\n            dVar56 = dStack_238;\n            dVar57 = dStack_240;\n            dVar59 = dStack_248;\n            dVar63 = dStack_250;\n            if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar63;\n            dStack_248 = dVar59;\n            dStack_240 = dVar57;\n            dStack_238 = dVar56;\n            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;\n            pdVar11 = pdVar11 + 5;\n            iVar32 = iVar32 + 1;\n            dVar58 = pdVar6[iVar38 * 5];\n            dVar62 = (pdVar6 + iVar38 * 5)[1];\n          } while( true );\n        }\n        iVar38 = 4;\n        iVar32 = 0x10;\n        iVar35 = 0x10;\n        iVar29 = 2;\n        goto LAB_000a5a70;\n      }\n      bVar1 = iVar29 < 2;\n      iStack_188 = 0;\n      bVar2 = false;\n      *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n      if (!bVar1) goto LAB_000a4fe8;\nLAB_000a6124:\n      if (iVar29 != 1) {\n        iVar38 = 1;\n        dStack_258 = 0.0;\n        dStack_260 = 0.0;\n        goto LAB_000a5110;\n      }\n      iVar38 = 1;\n      dStack_258 = 0.0;\n      iVar16 = *(int *)(param_2 + 0x244);\n      dStack_260 = 0.0;\njoined_r0x000a50f8:\n      if (iVar16 == 2) {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n        if (!bVar2) {\n          iVar38 = iVar38 + -1;\n          goto LAB_000a5110;\n        }\n      }\n      else {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n      }\n      puVar13 = (undefined4 *)(*pcVar37)(0x28);\n      pdVar7 = pdVar6;\n      puVar12 = puVar13;\n      do {\n        puVar22 = puVar12;\n        pdVar8 = pdVar7;\n        pdVar7 = pdVar8 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar8 + 4);\n        uVar27 = *(undefined4 *)(pdVar8 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar8 + 0xc);\n        *puVar22 = *(undefined4 *)pdVar8;\n        puVar22[1] = uVar28;\n        puVar22[2] = uVar27;\n        puVar22[3] = uVar26;\n        puVar12 = puVar22 + 4;\n      } while (pdVar7 != pdVar6 + 4);\n      uVar26 = *(undefined4 *)((int)pdVar8 + 0x14);\n      pcVar37 = *(code **)(puVar36 + 0x3042b0);\n      puVar22[4] = *(undefined4 *)pdVar7;\n      puVar22[5] = uVar26;\n      puVar13[4] = 0;\n      (*pcVar37)(pdVar6);\n      goto LAB_000a61cc;\n    }\n    uVar26 = 0x1c57;\nLAB_000a5724:\n    (**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               uVar26,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);\n    uStack_1d0 = 0;\n    goto LAB_000a5774;\n  }\n  uStack_1d0 = 1;\nLAB_000a5774:\n  pcVar37 = *(code **)(puVar36 + 0x3042d8);\nLAB_000a5778:\n  (*pcVar37)(iVar5);\n  if (*(int *)(iVar17 + 0x3350) != 0) {\n    (**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x16b4,*(int *)(puVar36 + 0x303bd8) + 0x3df8);\n  }\n  return uStack_1d0;\nLAB_000a5a58:\n  iVar29 = iVar35 + 1;\n  iVar35 = iVar35 << 4;\n  iVar32 = iVar33 << 4;\n  iVar38 = iVar33 + 1 + iVar29;\nLAB_000a5a70:\n  pcVar37 = *(code **)(puVar36 + 0x3047fc);\n  iVar38 = iStack_188 * 2 + iVar38;\n  *(double *)((int)pdVar7 + iVar35) = dStack_250;\n  ((double *)((int)pdVar7 + iVar35))[1] = dStack_248;\n  *(double *)((int)pdVar8 + iVar32) = dStack_240;\n  ((double *)((int)pdVar8 + iVar32))[1] = dStack_238;\n  puVar13 = (undefined4 *)(*pcVar37)(iVar38 + 2,0x28);\n  if (puVar13 == (undefined4 *)0x0) {\n    (**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               0x1dbc,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n    uStack_1d0 = 0;\n    goto LAB_000a5774;\n  }\n  pdVar31 = pdVar6 + 4;\n  pdVar11 = pdVar6;\n  puVar12 = puVar13;\n  pdVar21 = pdVar7;\n  puVar22 = puVar13;\n  do {\n    do {\n      puVar23 = puVar12;\n      pdVar10 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar10;\n      puVar12 = puVar23 + 4;\n    } while (pdVar10 != pdVar31);\n    pdVar10 = pdVar21 + 2;\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar23[4] = *(undefined4 *)pdVar31;\n    puVar23[5] = uVar26;\n    uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n    uVar27 = *(undefined4 *)(pdVar21 + 1);\n    uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n    *puVar22 = *(undefined4 *)pdVar21;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    pdVar11 = pdVar6;\n    puVar12 = puVar22 + 10;\n    pdVar21 = pdVar10;\n    puVar22 = puVar22 + 10;\n  } while (pdVar7 + iVar29 * 2 != pdVar10);\n  puVar22 = puVar13 + iVar29 * 10;\n  puVar12 = puVar22;\n  if (bVar2) {\n    do {\n      puVar23 = puVar12;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar12 = puVar23 + 4;\n    } while (pdVar21 != pdVar31);\n    iVar29 = iVar29 + 1;\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar23[4] = *(undefined4 *)(pdVar6 + 4);\n    puVar23[5] = uVar26;\n    uVar28 = puVar13[1];\n    uVar27 = puVar13[2];\n    uVar26 = puVar13[3];\n    puVar12 = puVar13 + iVar29 * 10;\n    *puVar22 = *puVar13;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n  }\n  iStack_188 = iVar38 - iStack_188;\n  if (iVar29 < iStack_188) {\n    pdVar11 = pdVar6;\n    puVar12 = puVar13 + iVar29 * 10;\n    pdVar21 = pdVar8 + ((iStack_188 + 0xfffffff) - iVar29) * 2;\n    puVar23 = puVar13 + iVar29 * 10;\n    do {\n      do {\n        puVar25 = puVar12;\n        pdVar10 = pdVar11 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n        uVar27 = *(undefined4 *)(pdVar11 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n        *puVar25 = *(undefined4 *)pdVar11;\n        puVar25[1] = uVar28;\n        puVar25[2] = uVar27;\n        puVar25[3] = uVar26;\n        pdVar11 = pdVar10;\n        puVar12 = puVar25 + 4;\n      } while (pdVar10 != pdVar31);\n      pdVar10 = pdVar21 + -2;\n      uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n      puVar25[4] = *(undefined4 *)pdVar31;\n      puVar25[5] = uVar26;\n      uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n      uVar27 = *(undefined4 *)(pdVar21 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar21;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar6;\n      puVar12 = puVar23 + 10;\n      pdVar21 = pdVar10;\n      puVar23 = puVar23 + 10;\n    } while (pdVar8 + -2 != pdVar10);\n    puVar12 = puVar13 + iStack_188 * 10;\n    iVar29 = iStack_188;\n  }\n  puVar24 = puVar13 + (iVar29 + 1) * 10;\n  pdVar11 = pdVar6;\n  puVar23 = puVar12;\n  puVar25 = puVar24;\n  if (bVar2) {\n    do {\n      puVar25 = puVar23;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar25 = *(undefined4 *)pdVar11;\n      puVar25[1] = uVar28;\n      puVar25[2] = uVar27;\n      puVar25[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar23 = puVar25 + 4;\n    } while (pdVar21 != pdVar31);\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar25[4] = *(undefined4 *)(pdVar6 + 4);\n    puVar25[5] = uVar26;\n    uVar27 = puVar22[0xb];\n    uVar26 = puVar22[0xc];\n    uVar28 = puVar22[0xd];\n    *puVar12 = puVar22[10];\n    puVar12[1] = uVar27;\n    puVar12[2] = uVar26;\n    puVar12[3] = uVar28;\n    puVar25 = puVar13 + (iVar29 + 1) * 10 + 10;\n    pdVar11 = pdVar6;\n    puVar12 = puVar24;\n    puVar23 = puVar24;\n  }\n  do {\n    puVar22 = puVar12;\n    pdVar21 = pdVar11;\n    pdVar11 = pdVar21 + 2;\n    uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n    uVar27 = *(undefined4 *)(pdVar21 + 1);\n    uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n    *puVar22 = *(undefined4 *)pdVar21;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    puVar12 = puVar22 + 4;\n  } while (pdVar11 != pdVar31);\n  uVar26 = *(undefined4 *)((int)pdVar21 + 0x14);\n  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n  puVar22[4] = *(undefined4 *)pdVar11;\n  puVar22[5] = uVar26;\n  uVar28 = puVar13[1];\n  uVar27 = puVar13[2];\n  uVar26 = puVar13[3];\n  *puVar23 = *puVar13;\n  puVar23[1] = uVar28;\n  puVar23[2] = uVar27;\n  puVar23[3] = uVar26;\n  puVar25[5] = 0;\n  puVar13[4] = iVar38 + 1;\n  (*pcVar37)(pdVar7);\n  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n  (**(code **)(puVar36 + 0x3042b0))(pdVar6);\nLAB_000a61cc:\n  uVar4 = FUN_000a2d58(iVar17,iVar5,puVar13,param_4);\n  uStack_1d0 = uStack_1d0 & uVar4;\n  (**(code **)(puVar36 + 0x3042b0))(puVar13);\n  if (uStack_1d0 == 0) goto LAB_000a5774;\n  iVar32 = *(int *)(pdStack_e8 + 2);\n  iVar29 = iVar32 * 0x28;\n  if ((*(int *)(param_2 + 0x244) == 2) && (*(int *)(pdStack_e8 + 4) == 0)) {\n    uVar4 = FUN_000a4c0c(iVar17,param_2,pdStack_e8,param_4);\n    uVar14 = FUN_000a4c0c(iVar17,param_2,pdStack_e8 + iVar32 * 5 + -5,param_4);\n    uStack_1d0 = uVar4 & uVar14 & 1;\n    iVar29 = *(int *)(pdStack_e8 + 2) * 0x28;\n  }\nLAB_000a6620:\n  pdStack_e8 = (double *)((int)pdStack_e8 + iVar29);\n  if (*(int *)((int)pdStack_e8 + 0x14) == 0) goto code_r0x000a6634;\n  goto LAB_000a4e98;\ncode_r0x000a6634:\n  pcVar37 = *(code **)(puVar36 + 0x3042d8);\n  goto LAB_000a5778;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "bool bVar2;" (primitive_type "bool") (identifier "bVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "double *pdVar6;" (primitive_type "double") (pointer_declarator "*pdVar6" (* "*") (identifier "pdVar6")) (; ";")) (declaration "double *pdVar7;" (primitive_type "double") (pointer_declarator "*pdVar7" (* "*") (identifier "pdVar7")) (; ";")) (declaration "double *pdVar8;" (primitive_type "double") (pointer_declarator "*pdVar8" (* "*") (identifier "pdVar8")) (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "double *pdVar10;" (primitive_type "double") (pointer_declarator "*pdVar10" (* "*") (identifier "pdVar10")) (; ";")) (declaration "double *pdVar11;" (primitive_type "double") (pointer_declarator "*pdVar11" (* "*") (identifier "pdVar11")) (; ";")) (declaration "undefined4 *puVar12;" (type_identifier "undefined4") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "undefined4 *puVar13;" (type_identifier "undefined4") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (declaration "int iVar19;" (primitive_type "int") (identifier "iVar19") (; ";")) (declaration "int iVar20;" (primitive_type "int") (identifier "iVar20") (; ";")) (declaration "double *pdVar21;" (primitive_type "double") (pointer_declarator "*pdVar21" (* "*") (identifier "pdVar21")) (; ";")) (declaration "undefined4 *puVar22;" (type_identifier "undefined4") (pointer_declarator "*puVar22" (* "*") (identifier "puVar22")) (; ";")) (declaration "undefined4 *puVar23;" (type_identifier "undefined4") (pointer_declarator "*puVar23" (* "*") (identifier "puVar23")) (; ";")) (declaration "undefined4 *puVar24;" (type_identifier "undefined4") (pointer_declarator "*puVar24" (* "*") (identifier "puVar24")) (; ";")) (declaration "undefined4 *puVar25;" (type_identifier "undefined4") (pointer_declarator "*puVar25" (* "*") (identifier "puVar25")) (; ";")) (declaration "undefined4 uVar26;" (type_identifier "undefined4") (identifier "uVar26") (; ";")) (declaration "undefined4 uVar27;" (type_identifier "undefined4") (identifier "uVar27") (; ";")) (declaration "undefined4 uVar28;" (type_identifier "undefined4") (identifier "uVar28") (; ";")) (declaration "int iVar29;" (primitive_type "int") (identifier "iVar29") (; ";")) (declaration "uint uVar30;" (type_identifier "uint") (identifier "uVar30") (; ";")) (declaration "double *pdVar31;" (primitive_type "double") (pointer_declarator "*pdVar31" (* "*") (identifier "pdVar31")) (; ";")) (declaration "int iVar32;" (primitive_type "int") (identifier "iVar32") (; ";")) (declaration "int iVar33;" (primitive_type "int") (identifier "iVar33") (; ";")) (declaration "uint uVar34;" (type_identifier "uint") (identifier "uVar34") (; ";")) (declaration "int iVar35;" (primitive_type "int") (identifier "iVar35") (; ";")) (declaration "undefined *puVar36;" (type_identifier "undefined") (pointer_declarator "*puVar36" (* "*") (identifier "puVar36")) (; ";")) (declaration "code *pcVar37;" (type_identifier "code") (pointer_declarator "*pcVar37" (* "*") (identifier "pcVar37")) (; ";")) (declaration "int iVar38;" (primitive_type "int") (identifier "iVar38") (; ";")) (declaration "double dVar39;" (primitive_type "double") (identifier "dVar39") (; ";")) (declaration "double dVar40;" (primitive_type "double") (identifier "dVar40") (; ";")) (declaration "undefined8 uVar41;" (type_identifier "undefined8") (identifier "uVar41") (; ";")) (declaration "double dVar42;" (primitive_type "double") (identifier "dVar42") (; ";")) (declaration "double dVar43;" (primitive_type "double") (identifier "dVar43") (; ";")) (declaration "double dVar44;" (primitive_type "double") (identifier "dVar44") (; ";")) (declaration "undefined8 uVar45;" (type_identifier "undefined8") (identifier "uVar45") (; ";")) (declaration "double dVar46;" (primitive_type "double") (identifier "dVar46") (; ";")) (declaration "double dVar47;" (primitive_type "double") (identifier "dVar47") (; ";")) (declaration "double dVar48;" (primitive_type "double") (identifier "dVar48") (; ";")) (declaration "double dVar49;" (primitive_type "double") (identifier "dVar49") (; ";")) (declaration "double dVar50;" (primitive_type "double") (identifier "dVar50") (; ";")) (declaration "double dVar51;" (primitive_type "double") (identifier "dVar51") (; ";")) (declaration "double dVar52;" (primitive_type "double") (identifier "dVar52") (; ";")) (declaration "double dVar53;" (primitive_type "double") (identifier "dVar53") (; ";")) (declaration "double dVar54;" (primitive_type "double") (identifier "dVar54") (; ";")) (declaration "double dVar55;" (primitive_type "double") (identifier "dVar55") (; ";")) (declaration "double dVar56;" (primitive_type "double") (identifier "dVar56") (; ";")) (declaration "double dVar57;" (primitive_type "double") (identifier "dVar57") (; ";")) (declaration "double dVar58;" (primitive_type "double") (identifier "dVar58") (; ";")) (declaration "double dVar59;" (primitive_type "double") (identifier "dVar59") (; ";")) (declaration "undefined8 uVar60;" (type_identifier "undefined8") (identifier "uVar60") (; ";")) (declaration "double dVar61;" (primitive_type "double") (identifier "dVar61") (; ";")) (declaration "double dVar62;" (primitive_type "double") (identifier "dVar62") (; ";")) (declaration "double dVar63;" (primitive_type "double") (identifier "dVar63") (; ";")) (declaration "double dVar64;" (primitive_type "double") (identifier "dVar64") (; ";")) (declaration "double dStack_2b8;" (primitive_type "double") (identifier "dStack_2b8") (; ";")) (declaration "double dStack_2b0;" (primitive_type "double") (identifier "dStack_2b0") (; ";")) (declaration "double dStack_2a8;" (primitive_type "double") (identifier "dStack_2a8") (; ";")) (declaration "double dStack_2a0;" (primitive_type "double") (identifier "dStack_2a0") (; ";")) (declaration "double dStack_288;" (primitive_type "double") (identifier "dStack_288") (; ";")) (declaration "double dStack_280;" (primitive_type "double") (identifier "dStack_280") (; ";")) (declaration "double dStack_278;" (primitive_type "double") (identifier "dStack_278") (; ";")) (declaration "double dStack_270;" (primitive_type "double") (identifier "dStack_270") (; ";")) (declaration "double dStack_260;" (primitive_type "double") (identifier "dStack_260") (; ";")) (declaration "double dStack_258;" (primitive_type "double") (identifier "dStack_258") (; ";")) (declaration "double dStack_250;" (primitive_type "double") (identifier "dStack_250") (; ";")) (declaration "double dStack_248;" (primitive_type "double") (identifier "dStack_248") (; ";")) (declaration "double dStack_240;" (primitive_type "double") (identifier "dStack_240") (; ";")) (declaration "double dStack_238;" (primitive_type "double") (identifier "dStack_238") (; ";")) (declaration "uint uStack_22c;" (type_identifier "uint") (identifier "uStack_22c") (; ";")) (declaration "uint uStack_1d0;" (type_identifier "uint") (identifier "uStack_1d0") (; ";")) (declaration "int iStack_188;" (primitive_type "int") (identifier "iStack_188") (; ";")) (declaration "double *pdStack_e8;" (primitive_type "double") (pointer_declarator "*pdStack_e8" (* "*") (identifier "pdStack_e8")) (; ";")) (declaration "double local_d8 [2];" (primitive_type "double") (array_declarator "local_d8 [2]" (identifier "local_d8") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined4 local_c8;" (type_identifier "undefined4") (identifier "local_c8") (; ";")) (declaration "double local_b0;" (primitive_type "double") (identifier "local_b0") (; ";")) (declaration "double local_88;" (primitive_type "double") (identifier "local_88") (; ";")) (declaration "double local_80;" (primitive_type "double") (identifier "local_80") (; ";")) (declaration "double local_58;" (primitive_type "double") (identifier "local_58") (; ";")) (declaration "double adStack_38 [2];" (primitive_type "double") (array_declarator "adStack_38 [2]" (identifier "adStack_38") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined4 local_24;" (type_identifier "undefined4") (identifier "local_24") (; ";")) (declaration "int local_c;" (primitive_type "int") (identifier "local_c") (; ";")) (expression_statement "puVar36 = PTR___stack_chk_guard_003a9230;" (assignment_expression "puVar36 = PTR___stack_chk_guard_003a9230" (identifier "puVar36") (= "=") (identifier "PTR___stack_chk_guard_003a9230")) (; ";")) (expression_statement "pdStack_e8 = local_d8;" (assignment_expression "pdStack_e8 = local_d8" (identifier "pdStack_e8") (= "=") (identifier "local_d8")) (; ";")) (expression_statement "local_c = *(int *)PTR___stack_chk_guard_003a9230;" (assignment_expression "local_c = *(int *)PTR___stack_chk_guard_003a9230" (identifier "local_c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_003a9230" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_003a9230" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_003a9230")))) (; ";")) (expression_statement "puVar13 = param_3;" (assignment_expression "puVar13 = param_3" (identifier "puVar13") (= "=") (identifier "param_3")) (; ";")) (expression_statement "pdVar6 = pdStack_e8;" (assignment_expression "pdVar6 = pdStack_e8" (identifier "pdVar6") (= "=") (identifier "pdStack_e8")) (; ";")) (expression_statement "pdVar7 = pdStack_e8;" (assignment_expression "pdVar7 = pdStack_e8" (identifier "pdVar7") (= "=") (identifier "pdStack_e8")) (; ";")) (do_statement "do {\n    do {\n      pdVar8 = pdVar6;\n      puVar12 = puVar13;\n      puVar13 = puVar12 + 4;\n      uVar28 = puVar12[1];\n      uVar27 = puVar12[2];\n      uVar26 = puVar12[3];\n      *(undefined4 *)pdVar8 = *puVar12;\n      *(undefined4 *)((int)pdVar8 + 4) = uVar28;\n      *(undefined4 *)(pdVar8 + 1) = uVar27;\n      *(undefined4 *)((int)pdVar8 + 0xc) = uVar26;\n      pdVar6 = pdVar8 + 2;\n    } while (puVar13 != param_3 + 8);\n    pdVar7 = pdVar7 + 5;\n    uVar26 = puVar12[5];\n    *(undefined4 *)(pdVar8 + 2) = *puVar13;\n    *(undefined4 *)((int)pdVar8 + 0x14) = uVar26;\n    puVar13 = param_3;\n    pdVar6 = pdVar7;\n  } while (pdVar7 != adStack_38);" (do "do") (compound_statement "{\n    do {\n      pdVar8 = pdVar6;\n      puVar12 = puVar13;\n      puVar13 = puVar12 + 4;\n      uVar28 = puVar12[1];\n      uVar27 = puVar12[2];\n      uVar26 = puVar12[3];\n      *(undefined4 *)pdVar8 = *puVar12;\n      *(undefined4 *)((int)pdVar8 + 4) = uVar28;\n      *(undefined4 *)(pdVar8 + 1) = uVar27;\n      *(undefined4 *)((int)pdVar8 + 0xc) = uVar26;\n      pdVar6 = pdVar8 + 2;\n    } while (puVar13 != param_3 + 8);\n    pdVar7 = pdVar7 + 5;\n    uVar26 = puVar12[5];\n    *(undefined4 *)(pdVar8 + 2) = *puVar13;\n    *(undefined4 *)((int)pdVar8 + 0x14) = uVar26;\n    puVar13 = param_3;\n    pdVar6 = pdVar7;\n  }" ({ "{") (do_statement "do {\n      pdVar8 = pdVar6;\n      puVar12 = puVar13;\n      puVar13 = puVar12 + 4;\n      uVar28 = puVar12[1];\n      uVar27 = puVar12[2];\n      uVar26 = puVar12[3];\n      *(undefined4 *)pdVar8 = *puVar12;\n      *(undefined4 *)((int)pdVar8 + 4) = uVar28;\n      *(undefined4 *)(pdVar8 + 1) = uVar27;\n      *(undefined4 *)((int)pdVar8 + 0xc) = uVar26;\n      pdVar6 = pdVar8 + 2;\n    } while (puVar13 != param_3 + 8);" (do "do") (compound_statement "{\n      pdVar8 = pdVar6;\n      puVar12 = puVar13;\n      puVar13 = puVar12 + 4;\n      uVar28 = puVar12[1];\n      uVar27 = puVar12[2];\n      uVar26 = puVar12[3];\n      *(undefined4 *)pdVar8 = *puVar12;\n      *(undefined4 *)((int)pdVar8 + 4) = uVar28;\n      *(undefined4 *)(pdVar8 + 1) = uVar27;\n      *(undefined4 *)((int)pdVar8 + 0xc) = uVar26;\n      pdVar6 = pdVar8 + 2;\n    }" ({ "{") (expression_statement "pdVar8 = pdVar6;" (assignment_expression "pdVar8 = pdVar6" (identifier "pdVar8") (= "=") (identifier "pdVar6")) (; ";")) (expression_statement "puVar12 = puVar13;" (assignment_expression "puVar12 = puVar13" (identifier "puVar12") (= "=") (identifier "puVar13")) (; ";")) (expression_statement "puVar13 = puVar12 + 4;" (assignment_expression "puVar13 = puVar12 + 4" (identifier "puVar13") (= "=") (binary_expression "puVar12 + 4" (identifier "puVar12") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "uVar28 = puVar12[1];" (assignment_expression "uVar28 = puVar12[1]" (identifier "uVar28") (= "=") (subscript_expression "puVar12[1]" (identifier "puVar12") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar27 = puVar12[2];" (assignment_expression "uVar27 = puVar12[2]" (identifier "uVar27") (= "=") (subscript_expression "puVar12[2]" (identifier "puVar12") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar26 = puVar12[3];" (assignment_expression "uVar26 = puVar12[3]" (identifier "uVar26") (= "=") (subscript_expression "puVar12[3]" (identifier "puVar12") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)pdVar8 = *puVar12;" (assignment_expression "*(undefined4 *)pdVar8 = *puVar12" (pointer_expression "*(undefined4 *)pdVar8" (* "*") (cast_expression "(undefined4 *)pdVar8" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pdVar8"))) (= "=") (pointer_expression "*puVar12" (* "*") (identifier "puVar12"))) (; ";")) (expression_statement "*(undefined4 *)((int)pdVar8 + 4) = uVar28;" (assignment_expression "*(undefined4 *)((int)pdVar8 + 4) = uVar28" (pointer_expression "*(undefined4 *)((int)pdVar8 + 4)" (* "*") (cast_expression "(undefined4 *)((int)pdVar8 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar8 + 4)" (( "(") (binary_expression "(int)pdVar8 + 4" (cast_expression "(int)pdVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar8")) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar28")) (; ";")) (expression_statement "*(undefined4 *)(pdVar8 + 1) = uVar27;" (assignment_expression "*(undefined4 *)(pdVar8 + 1) = uVar27" (pointer_expression "*(undefined4 *)(pdVar8 + 1)" (* "*") (cast_expression "(undefined4 *)(pdVar8 + 1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar8 + 1)" (( "(") (binary_expression "pdVar8 + 1" (identifier "pdVar8") (+ "+") (number_literal "1")) () ")")))) (= "=") (identifier "uVar27")) (; ";")) (expression_statement "*(undefined4 *)((int)pdVar8 + 0xc) = uVar26;" (assignment_expression "*(undefined4 *)((int)pdVar8 + 0xc) = uVar26" (pointer_expression "*(undefined4 *)((int)pdVar8 + 0xc)" (* "*") (cast_expression "(undefined4 *)((int)pdVar8 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar8 + 0xc)" (( "(") (binary_expression "(int)pdVar8 + 0xc" (cast_expression "(int)pdVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar8")) (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "uVar26")) (; ";")) (expression_statement "pdVar6 = pdVar8 + 2;" (assignment_expression "pdVar6 = pdVar8 + 2" (identifier "pdVar6") (= "=") (binary_expression "pdVar8 + 2" (identifier "pdVar8") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar13 != param_3 + 8)" (( "(") (binary_expression "puVar13 != param_3 + 8" (identifier "puVar13") (!= "!=") (binary_expression "param_3 + 8" (identifier "param_3") (+ "+") (number_literal "8"))) () ")")) (; ";")) (expression_statement "pdVar7 = pdVar7 + 5;" (assignment_expression "pdVar7 = pdVar7 + 5" (identifier "pdVar7") (= "=") (binary_expression "pdVar7 + 5" (identifier "pdVar7") (+ "+") (number_literal "5"))) (; ";")) (expression_statement "uVar26 = puVar12[5];" (assignment_expression "uVar26 = puVar12[5]" (identifier "uVar26") (= "=") (subscript_expression "puVar12[5]" (identifier "puVar12") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(pdVar8 + 2) = *puVar13;" (assignment_expression "*(undefined4 *)(pdVar8 + 2) = *puVar13" (pointer_expression "*(undefined4 *)(pdVar8 + 2)" (* "*") (cast_expression "(undefined4 *)(pdVar8 + 2)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar8 + 2)" (( "(") (binary_expression "pdVar8 + 2" (identifier "pdVar8") (+ "+") (number_literal "2")) () ")")))) (= "=") (pointer_expression "*puVar13" (* "*") (identifier "puVar13"))) (; ";")) (expression_statement "*(undefined4 *)((int)pdVar8 + 0x14) = uVar26;" (assignment_expression "*(undefined4 *)((int)pdVar8 + 0x14) = uVar26" (pointer_expression "*(undefined4 *)((int)pdVar8 + 0x14)" (* "*") (cast_expression "(undefined4 *)((int)pdVar8 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar8 + 0x14)" (( "(") (binary_expression "(int)pdVar8 + 0x14" (cast_expression "(int)pdVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar8")) (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "uVar26")) (; ";")) (expression_statement "puVar13 = param_3;" (assignment_expression "puVar13 = param_3" (identifier "puVar13") (= "=") (identifier "param_3")) (; ";")) (expression_statement "pdVar6 = pdVar7;" (assignment_expression "pdVar6 = pdVar7" (identifier "pdVar6") (= "=") (identifier "pdVar7")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pdVar7 != adStack_38)" (( "(") (binary_expression "pdVar7 != adStack_38" (identifier "pdVar7") (!= "!=") (identifier "adStack_38")) () ")")) (; ";")) (expression_statement "dVar39 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x47c8);" (assignment_expression "dVar39 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x47c8)" (identifier "dVar39") (= "=") (pointer_expression "*(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x47c8)" (* "*") (cast_expression "(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x47c8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x47c8)" (( "(") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x47c8" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "0x47c8")) () ")"))))) (; ";")) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" (identifier "local_24") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_c8 = 4;" (assignment_expression "local_c8 = 4" (identifier "local_c8") (= "=") (number_literal "4")) (; ";")) (expression_statement "local_b0 = local_b0 + dVar39;" (assignment_expression "local_b0 = local_b0 + dVar39" (identifier "local_b0") (= "=") (binary_expression "local_b0 + dVar39" (identifier "local_b0") (+ "+") (identifier "dVar39"))) (; ";")) (expression_statement "local_88 = local_88 + dVar39;" (assignment_expression "local_88 = local_88 + dVar39" (identifier "local_88") (= "=") (binary_expression "local_88 + dVar39" (identifier "local_88") (+ "+") (identifier "dVar39"))) (; ";")) (expression_statement "local_80 = local_80 + dVar39;" (assignment_expression "local_80 = local_80 + dVar39" (identifier "local_80") (= "=") (binary_expression "local_80 + dVar39" (identifier "local_80") (+ "+") (identifier "dVar39"))) (; ";")) (expression_statement "local_58 = local_58 + dVar39;" (assignment_expression "local_58 = local_58 + dVar39" (identifier "local_58") (= "=") (binary_expression "local_58 + dVar39" (identifier "local_58") (+ "+") (identifier "dVar39"))) (; ";")) (expression_statement "uVar4 = FUN_000a2d58();" (assignment_expression "uVar4 = FUN_000a2d58()" (identifier "uVar4") (= "=") (call_expression "FUN_000a2d58()" (identifier "FUN_000a2d58") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (local_c == *(int *)puVar36) {\n    return uVar4;\n  }" (if "if") (parenthesized_expression "(local_c == *(int *)puVar36)" (( "(") (binary_expression "local_c == *(int *)puVar36" (identifier "local_c") (== "==") (pointer_expression "*(int *)puVar36" (* "*") (cast_expression "(int *)puVar36" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar36")))) () ")")) (compound_statement "{\n    return uVar4;\n  }" ({ "{") (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}"))) (expression_statement "iVar17 = local_c;" (assignment_expression "iVar17 = local_c" (identifier "iVar17") (= "=") (identifier "local_c")) (; ";")) (expression_statement "puVar36 = PTR___stack_chk_fail_003a9064;" (assignment_expression "puVar36 = PTR___stack_chk_fail_003a9064" (identifier "puVar36") (= "=") (identifier "PTR___stack_chk_fail_003a9064")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_003a9064)();" (call_expression "(*(code *)PTR___stack_chk_fail_003a9064)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_003a9064)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_003a9064" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_003a9064" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_003a9064"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (*(int *)(iVar17 + 0x3350) != 0) {\n    (**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x168f,*(int *)(puVar36 + 0x303bd8) + 0x3dd8);\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar17 + 0x3350) != 0)" (( "(") (binary_expression "*(int *)(iVar17 + 0x3350) != 0" (pointer_expression "*(int *)(iVar17 + 0x3350)" (* "*") (cast_expression "(int *)(iVar17 + 0x3350)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x3350)" (( "(") (binary_expression "iVar17 + 0x3350" (identifier "iVar17") (+ "+") (number_literal "0x3350")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    (**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x168f,*(int *)(puVar36 + 0x303bd8) + 0x3dd8);\n  }" ({ "{") (expression_statement "(**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x168f,*(int *)(puVar36 + 0x303bd8) + 0x3dd8);" (call_expression "(**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x168f,*(int *)(puVar36 + 0x303bd8) + 0x3dd8)" (parenthesized_expression "(**(code **)(puVar36 + 0x3044d0))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x3044d0)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x3044d0)" (* "*") (cast_expression "(code **)(puVar36 + 0x3044d0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3044d0)" (( "(") (binary_expression "puVar36 + 0x3044d0" (identifier "puVar36") (+ "+") (number_literal "0x3044d0")) () ")"))))) () ")")) (argument_list "(0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x168f,*(int *)(puVar36 + 0x303bd8) + 0x3dd8)" (( "(") (number_literal "0x80") (, ",") (binary_expression "*(int *)(puVar36 + 0x303bd8) + 0x38b0" (pointer_expression "*(int *)(puVar36 + 0x303bd8)" (* "*") (cast_expression "(int *)(puVar36 + 0x303bd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x303bd8)" (( "(") (binary_expression "puVar36 + 0x303bd8" (identifier "puVar36") (+ "+") (number_literal "0x303bd8")) () ")")))) (+ "+") (number_literal "0x38b0")) (, ",") (binary_expression "*(int *)(puVar36 + 0x303bd8) + 0x45dc" (pointer_expression "*(int *)(puVar36 + 0x303bd8)" (* "*") (cast_expression "(int *)(puVar36 + 0x303bd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x303bd8)" (( "(") (binary_expression "puVar36 + 0x303bd8" (identifier "puVar36") (+ "+") (number_literal "0x303bd8")) () ")")))) (+ "+") (number_literal "0x45dc")) (, ",") (number_literal "0x168f") (, ",") (binary_expression "*(int *)(puVar36 + 0x303bd8) + 0x3dd8" (pointer_expression "*(int *)(puVar36 + 0x303bd8)" (* "*") (cast_expression "(int *)(puVar36 + 0x303bd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x303bd8)" (( "(") (binary_expression "puVar36 + 0x303bd8" (identifier "puVar36") (+ "+") (number_literal "0x303bd8")) () ")")))) (+ "+") (number_literal "0x3dd8")) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar5 = (**(code **)(puVar36 + 0x3044ec))(0,param_2);" (assignment_expression "iVar5 = (**(code **)(puVar36 + 0x3044ec))(0,param_2)" (identifier "iVar5") (= "=") (call_expression "(**(code **)(puVar36 + 0x3044ec))(0,param_2)" (parenthesized_expression "(**(code **)(puVar36 + 0x3044ec))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x3044ec)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x3044ec)" (* "*") (cast_expression "(code **)(puVar36 + 0x3044ec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3044ec)" (( "(") (binary_expression "puVar36 + 0x3044ec" (identifier "puVar36") (+ "+") (number_literal "0x3044ec")) () ")"))))) () ")")) (argument_list "(0,param_2)" (( "(") (number_literal "0") (, ",") (identifier "param_2") () ")")))) (; ";")) (expression_statement "puVar13 = (undefined4 *)(iVar5 + 0x48);" (assignment_expression "puVar13 = (undefined4 *)(iVar5 + 0x48)" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)(iVar5 + 0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x48)" (( "(") (binary_expression "iVar5 + 0x48" (identifier "iVar5") (+ "+") (number_literal "0x48")) () ")")))) (; ";")) (expression_statement "puVar12 = (undefined4 *)(param_2 + 0xa0);" (assignment_expression "puVar12 = (undefined4 *)(param_2 + 0xa0)" (identifier "puVar12") (= "=") (cast_expression "(undefined4 *)(param_2 + 0xa0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xa0)" (( "(") (binary_expression "param_2 + 0xa0" (identifier "param_2") (+ "+") (number_literal "0xa0")) () ")")))) (; ";")) (do_statement "do {\n    puVar23 = puVar12;\n    puVar22 = puVar13;\n    puVar12 = puVar23 + 4;\n    uVar28 = puVar23[1];\n    uVar27 = puVar23[2];\n    uVar26 = puVar23[3];\n    *puVar22 = *puVar23;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    puVar13 = puVar22 + 4;\n  } while (puVar12 != (undefined4 *)(param_2 + 0xf0));" (do "do") (compound_statement "{\n    puVar23 = puVar12;\n    puVar22 = puVar13;\n    puVar12 = puVar23 + 4;\n    uVar28 = puVar23[1];\n    uVar27 = puVar23[2];\n    uVar26 = puVar23[3];\n    *puVar22 = *puVar23;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    puVar13 = puVar22 + 4;\n  }" ({ "{") (expression_statement "puVar23 = puVar12;" (assignment_expression "puVar23 = puVar12" (identifier "puVar23") (= "=") (identifier "puVar12")) (; ";")) (expression_statement "puVar22 = puVar13;" (assignment_expression "puVar22 = puVar13" (identifier "puVar22") (= "=") (identifier "puVar13")) (; ";")) (expression_statement "puVar12 = puVar23 + 4;" (assignment_expression "puVar12 = puVar23 + 4" (identifier "puVar12") (= "=") (binary_expression "puVar23 + 4" (identifier "puVar23") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "uVar28 = puVar23[1];" (assignment_expression "uVar28 = puVar23[1]" (identifier "uVar28") (= "=") (subscript_expression "puVar23[1]" (identifier "puVar23") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar27 = puVar23[2];" (assignment_expression "uVar27 = puVar23[2]" (identifier "uVar27") (= "=") (subscript_expression "puVar23[2]" (identifier "puVar23") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar26 = puVar23[3];" (assignment_expression "uVar26 = puVar23[3]" (identifier "uVar26") (= "=") (subscript_expression "puVar23[3]" (identifier "puVar23") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*puVar22 = *puVar23;" (assignment_expression "*puVar22 = *puVar23" (pointer_expression "*puVar22" (* "*") (identifier "puVar22")) (= "=") (pointer_expression "*puVar23" (* "*") (identifier "puVar23"))) (; ";")) (expression_statement "puVar22[1] = uVar28;" (assignment_expression "puVar22[1] = uVar28" (subscript_expression "puVar22[1]" (identifier "puVar22") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar28")) (; ";")) (expression_statement "puVar22[2] = uVar27;" (assignment_expression "puVar22[2] = uVar27" (subscript_expression "puVar22[2]" (identifier "puVar22") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar27")) (; ";")) (expression_statement "puVar22[3] = uVar26;" (assignment_expression "puVar22[3] = uVar26" (subscript_expression "puVar22[3]" (identifier "puVar22") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar26")) (; ";")) (expression_statement "puVar13 = puVar22 + 4;" (assignment_expression "puVar13 = puVar22 + 4" (identifier "puVar13") (= "=") (binary_expression "puVar22 + 4" (identifier "puVar22") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar12 != (undefined4 *)(param_2 + 0xf0))" (( "(") (binary_expression "puVar12 != (undefined4 *)(param_2 + 0xf0)" (identifier "puVar12") (!= "!=") (cast_expression "(undefined4 *)(param_2 + 0xf0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xf0)" (( "(") (binary_expression "param_2 + 0xf0" (identifier "param_2") (+ "+") (number_literal "0xf0")) () ")")))) () ")")) (; ";")) (expression_statement "uVar26 = puVar23[5];" (assignment_expression "uVar26 = puVar23[5]" (identifier "uVar26") (= "=") (subscript_expression "puVar23[5]" (identifier "puVar23") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "iVar18 = *(int *)(iVar5 + 0x1a8);" (assignment_expression "iVar18 = *(int *)(iVar5 + 0x1a8)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(iVar5 + 0x1a8)" (* "*") (cast_expression "(int *)(iVar5 + 0x1a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x1a8)" (( "(") (binary_expression "iVar5 + 0x1a8" (identifier "iVar5") (+ "+") (number_literal "0x1a8")) () ")"))))) (; ";")) (expression_statement "puVar22[4] = *puVar12;" (assignment_expression "puVar22[4] = *puVar12" (subscript_expression "puVar22[4]" (identifier "puVar22") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*puVar12" (* "*") (identifier "puVar12"))) (; ";")) (expression_statement "puVar22[5] = uVar26;" (assignment_expression "puVar22[5] = uVar26" (subscript_expression "puVar22[5]" (identifier "puVar22") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar26")) (; ";")) (if_statement "if (iVar18 != 0) {\n    uVar26 = (**(code **)(puVar36 + 0x30423c))();\n    *(undefined4 *)(iVar5 + 0x1a8) = uVar26;\n  }" (if "if") (parenthesized_expression "(iVar18 != 0)" (( "(") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar26 = (**(code **)(puVar36 + 0x30423c))();\n    *(undefined4 *)(iVar5 + 0x1a8) = uVar26;\n  }" ({ "{") (expression_statement "uVar26 = (**(code **)(puVar36 + 0x30423c))();" (assignment_expression "uVar26 = (**(code **)(puVar36 + 0x30423c))()" (identifier "uVar26") (= "=") (call_expression "(**(code **)(puVar36 + 0x30423c))()" (parenthesized_expression "(**(code **)(puVar36 + 0x30423c))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x30423c)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x30423c)" (* "*") (cast_expression "(code **)(puVar36 + 0x30423c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x30423c)" (( "(") (binary_expression "puVar36 + 0x30423c" (identifier "puVar36") (+ "+") (number_literal "0x30423c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x1a8) = uVar26;" (assignment_expression "*(undefined4 *)(iVar5 + 0x1a8) = uVar26" (pointer_expression "*(undefined4 *)(iVar5 + 0x1a8)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x1a8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x1a8)" (( "(") (binary_expression "iVar5 + 0x1a8" (identifier "iVar5") (+ "+") (number_literal "0x1a8")) () ")")))) (= "=") (identifier "uVar26")) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar5 + 0x1ac) != 0) {\n    uVar26 = (**(code **)(puVar36 + 0x304b20))(*(int *)(iVar5 + 0x1ac),0,0,1,param_4);\n    *(undefined4 *)(iVar5 + 0x1a8) = uVar26;\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar5 + 0x1ac) != 0)" (( "(") (binary_expression "*(int *)(iVar5 + 0x1ac) != 0" (pointer_expression "*(int *)(iVar5 + 0x1ac)" (* "*") (cast_expression "(int *)(iVar5 + 0x1ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x1ac)" (( "(") (binary_expression "iVar5 + 0x1ac" (identifier "iVar5") (+ "+") (number_literal "0x1ac")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar26 = (**(code **)(puVar36 + 0x304b20))(*(int *)(iVar5 + 0x1ac),0,0,1,param_4);\n    *(undefined4 *)(iVar5 + 0x1a8) = uVar26;\n  }" ({ "{") (expression_statement "uVar26 = (**(code **)(puVar36 + 0x304b20))(*(int *)(iVar5 + 0x1ac),0,0,1,param_4);" (assignment_expression "uVar26 = (**(code **)(puVar36 + 0x304b20))(*(int *)(iVar5 + 0x1ac),0,0,1,param_4)" (identifier "uVar26") (= "=") (call_expression "(**(code **)(puVar36 + 0x304b20))(*(int *)(iVar5 + 0x1ac),0,0,1,param_4)" (parenthesized_expression "(**(code **)(puVar36 + 0x304b20))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x304b20)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x304b20)" (* "*") (cast_expression "(code **)(puVar36 + 0x304b20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x304b20)" (( "(") (binary_expression "puVar36 + 0x304b20" (identifier "puVar36") (+ "+") (number_literal "0x304b20")) () ")"))))) () ")")) (argument_list "(*(int *)(iVar5 + 0x1ac),0,0,1,param_4)" (( "(") (pointer_expression "*(int *)(iVar5 + 0x1ac)" (* "*") (cast_expression "(int *)(iVar5 + 0x1ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x1ac)" (( "(") (binary_expression "iVar5 + 0x1ac" (identifier "iVar5") (+ "+") (number_literal "0x1ac")) () ")")))) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") (, ",") (identifier "param_4") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x1a8) = uVar26;" (assignment_expression "*(undefined4 *)(iVar5 + 0x1a8) = uVar26" (pointer_expression "*(undefined4 *)(iVar5 + 0x1a8)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x1a8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x1a8)" (( "(") (binary_expression "iVar5 + 0x1a8" (identifier "iVar5") (+ "+") (number_literal "0x1a8")) () ")")))) (= "=") (identifier "uVar26")) (; ";")) (} "}"))) (expression_statement "iVar18 = *(int *)((int)pdStack_e8 + 0x14);" (assignment_expression "iVar18 = *(int *)((int)pdStack_e8 + 0x14)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)((int)pdStack_e8 + 0x14)" (* "*") (cast_expression "(int *)((int)pdStack_e8 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdStack_e8 + 0x14)" (( "(") (binary_expression "(int)pdStack_e8 + 0x14" (cast_expression "(int)pdStack_e8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdStack_e8")) (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0xec) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0xec) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0xec)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0xec)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xec)" (( "(") (binary_expression "iVar5 + 0xec" (identifier "iVar5") (+ "+") (number_literal "0xec")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0xe8) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0xe8) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0xe8)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0xe8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xe8)" (( "(") (binary_expression "iVar5 + 0xe8" (identifier "iVar5") (+ "+") (number_literal "0xe8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x1b4) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x1b4) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x1b4)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x1b4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x1b4)" (( "(") (binary_expression "iVar5 + 0x1b4" (identifier "iVar5") (+ "+") (number_literal "0x1b4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x1b0) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0x1b0) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0x1b0)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x1b0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x1b0)" (( "(") (binary_expression "iVar5 + 0x1b0" (identifier "iVar5") (+ "+") (number_literal "0x1b0")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x240) = 2;" (assignment_expression "*(undefined4 *)(iVar5 + 0x240) = 2" (pointer_expression "*(undefined4 *)(iVar5 + 0x240)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x240)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x240)" (( "(") (binary_expression "iVar5 + 0x240" (identifier "iVar5") (+ "+") (number_literal "0x240")) () ")")))) (= "=") (number_literal "2")) (; ";")) (if_statement "if (iVar18 != 0) {\n    iVar18 = *(int *)(puVar36 + 0x303bd0);\n    iVar19 = *(int *)(puVar36 + 0x303bd8);\n    uStack_1d0 = 1;\n    dVar39 = *(double *)(iVar18 + 0x13f8);\n    iVar15 = *(int *)(puVar36 + 0x303bd0);\n    dVar40 = *(double *)(iVar15 + 0x1410);\n    uVar41 = *(undefined8 *)(iVar19 + 0x34a0);\nLAB_000a4e98:\n    iVar29 = *(int *)(pdStack_e8 + 2);\n    if (iVar29 == 1) {\n      iVar29 = 0x28;\n      goto LAB_000a6620;\n    }\n    pdVar6 = (double *)(**(code **)(puVar36 + 0x3047fc))(iVar29 + 2,0x28);\n    if (pdVar6 != (double *)0x0) {\n      iVar32 = iVar29 * 0x28;\n      (**(code **)(puVar36 + 0x304648))(pdVar6,pdStack_e8,iVar32);\n      pdVar7 = pdVar6 + iVar29 * 5;\n      if ((ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8) < dVar39) &&\n         (ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]) < dVar39)) {\n        if (*(int *)(param_2 + 0x248) - 1U < 2) {\n          pdVar8 = pdStack_e8 + 5;\n          do {\n            pdVar21 = pdVar7;\n            pdVar11 = pdVar8;\n            pdVar8 = pdVar11 + 2;\n            uVar28 = *(undefined4 *)(pdVar11 + 1);\n            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n            uVar27 = *(undefined4 *)pdVar11;\n            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);\n            *(undefined4 *)(pdVar21 + 1) = uVar28;\n            *(undefined4 *)pdVar21 = uVar27;\n            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;\n            pdVar7 = pdVar21 + 2;\n          } while (pdVar8 != pdStack_e8 + 9);\n          iVar32 = iVar32 + 0x28;\n          uVar26 = *(undefined4 *)pdVar8;\n          pdVar7 = pdVar6 + iVar29 * 5 + 5;\n          *(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14);\n          *(undefined4 *)(pdVar21 + 2) = uVar26;\n          iVar29 = iVar29 + 1;\n        }\n        iStack_188 = 1;\n        bVar2 = true;\n        bVar1 = iVar29 < 2;\n        *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n        if (bVar1) goto LAB_000a6124;\nLAB_000a4fe8:\n        dVar61 = *(double *)(iVar18 + 0x13f8);\n        dStack_260 = pdVar6[5] - *pdVar6;\n        dStack_258 = pdVar6[6] - pdVar6[1];\n        if ((dVar61 <= ABS(dStack_260)) || (dVar61 <= ABS(dStack_258))) {\n          iVar38 = 1;\n        }\n        else {\n          iVar38 = 1;\n          pdVar7 = pdVar6 + 10;\n          do {\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));\n        }\nLAB_000a5110:\n        uVar4 = iVar29 * 2;\n        pdVar7 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        pdVar8 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        if (pdVar7 == (double *)0x0) {\n          if (pdVar8 != (double *)0x0) {\n            (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n          uVar26 = 0x1c93;\n          goto LAB_000a5724;\n        }\n        if (pdVar8 == (double *)0x0) {\n          (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n          goto LAB_000a6cbc;\n        }\n        if (ABS(dStack_260) < *(double *)(iVar18 + 0x13f8)) {\n          dVar61 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else if (ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)) {\n          dVar52 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }\nLAB_000a51b0:\n        dVar42 = (double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18);\n        iVar16 = *(int *)(param_2 + 0x24c) * *(int *)(param_2 + 0x24c);\n        dVar42 = dVar42 * *(double *)(param_2 + 0x1b0) *\n                 *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400);\n        dVar46 = (double)iVar16;\n        if (iVar16 < 0) {\n          dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418);\n        }\n        dVar46 = dVar46 * dVar42 * dVar42;\n        if (*(int *)(param_2 + 0x244) == 3) {\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            iVar16 = iVar29 + -2;\n            dVar50 = pdVar11[1];\n            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);\n            pdVar21 = pdVar6 + iVar16 * 5;\n            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            dVar50 = pdVar21[1];\n            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            goto LAB_000a5220;\n          }\n        }\n        else {\nLAB_000a5220:\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n        }\n        dVar43 = dVar42 * dVar42;\n        dVar53 = dVar43 / (dVar61 * dVar61 + *(double *)(iVar16 + 0x1438));\n        dVar64 = SQRT(dVar53);\n        if (dVar53 < 0.0) {\n          (**(code **)(puVar36 + 0x304770))();\n        }\n        dVar61 = dVar61 * dVar64;\n        pdVar11 = pdVar6 + iVar38 * 5;\n        dVar58 = *pdVar11;\n        dVar62 = pdVar11[1];\n        dVar57 = dVar61 + pdVar6[1];\n        dVar55 = pdVar6[1] - dVar61;\n        dVar53 = dVar64 + *pdVar6;\n        dStack_238 = dVar62 - dVar61;\n        dStack_240 = dVar58 - dVar64;\n        dVar56 = *pdVar6 - dVar64;\n        dVar51 = dVar56;\n        dVar50 = dVar57;\n        dStack_250 = dVar64 + dVar58;\n        dStack_248 = dVar61 + dVar62;\n        if (0.0 < dVar64 * dStack_258 - dVar61 * dStack_260) {\n          dVar51 = dVar53;\n          dVar50 = dVar55;\n          dVar53 = dVar56;\n          dVar55 = dVar57;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar64 + dVar58;\n          dStack_238 = dVar61 + dVar62;\n        }\n        iVar32 = iVar38 + 1;\n        *pdVar8 = dVar51;\n        pdVar8[1] = dVar55;\n        *pdVar7 = dVar53;\n        pdVar7[1] = dVar50;\n        if (iVar32 < iVar29) {\n          iVar20 = *(int *)(puVar36 + 0x303bd8);\n          iVar33 = 1;\n          iVar35 = 1;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78);\n          dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar4;\n          do {\n            dVar44 = pdVar11[6];\n            dVar47 = pdVar11[5];\n            dVar48 = dVar44 - dVar62;\n            dVar54 = dVar47 - dVar58;\n            dVar49 = dVar47 - dVar58;\n            dVar56 = dStack_238;\n            dVar57 = dStack_240;\n            dVar59 = dStack_248;\n            dVar63 = dStack_250;\n            if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar63;\n            dStack_248 = dVar59;\n            dStack_240 = dVar57;\n            dStack_238 = dVar56;\n            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;\n            pdVar11 = pdVar11 + 5;\n            iVar32 = iVar32 + 1;\n            dVar58 = pdVar6[iVar38 * 5];\n            dVar62 = (pdVar6 + iVar38 * 5)[1];\n          } while( true );\n        }\n        iVar38 = 4;\n        iVar32 = 0x10;\n        iVar35 = 0x10;\n        iVar29 = 2;\n        goto LAB_000a5a70;\n      }\n      bVar1 = iVar29 < 2;\n      iStack_188 = 0;\n      bVar2 = false;\n      *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n      if (!bVar1) goto LAB_000a4fe8;\nLAB_000a6124:\n      if (iVar29 != 1) {\n        iVar38 = 1;\n        dStack_258 = 0.0;\n        dStack_260 = 0.0;\n        goto LAB_000a5110;\n      }\n      iVar38 = 1;\n      dStack_258 = 0.0;\n      iVar16 = *(int *)(param_2 + 0x244);\n      dStack_260 = 0.0;\njoined_r0x000a50f8:\n      if (iVar16 == 2) {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n        if (!bVar2) {\n          iVar38 = iVar38 + -1;\n          goto LAB_000a5110;\n        }\n      }\n      else {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n      }\n      puVar13 = (undefined4 *)(*pcVar37)(0x28);\n      pdVar7 = pdVar6;\n      puVar12 = puVar13;\n      do {\n        puVar22 = puVar12;\n        pdVar8 = pdVar7;\n        pdVar7 = pdVar8 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar8 + 4);\n        uVar27 = *(undefined4 *)(pdVar8 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar8 + 0xc);\n        *puVar22 = *(undefined4 *)pdVar8;\n        puVar22[1] = uVar28;\n        puVar22[2] = uVar27;\n        puVar22[3] = uVar26;\n        puVar12 = puVar22 + 4;\n      } while (pdVar7 != pdVar6 + 4);\n      uVar26 = *(undefined4 *)((int)pdVar8 + 0x14);\n      pcVar37 = *(code **)(puVar36 + 0x3042b0);\n      puVar22[4] = *(undefined4 *)pdVar7;\n      puVar22[5] = uVar26;\n      puVar13[4] = 0;\n      (*pcVar37)(pdVar6);\n      goto LAB_000a61cc;\n    }\n    uVar26 = 0x1c57;\nLAB_000a5724:\n    (**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               uVar26,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);\n    uStack_1d0 = 0;\n    goto LAB_000a5774;\n  }" (if "if") (parenthesized_expression "(iVar18 != 0)" (( "(") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar18 = *(int *)(puVar36 + 0x303bd0);\n    iVar19 = *(int *)(puVar36 + 0x303bd8);\n    uStack_1d0 = 1;\n    dVar39 = *(double *)(iVar18 + 0x13f8);\n    iVar15 = *(int *)(puVar36 + 0x303bd0);\n    dVar40 = *(double *)(iVar15 + 0x1410);\n    uVar41 = *(undefined8 *)(iVar19 + 0x34a0);\nLAB_000a4e98:\n    iVar29 = *(int *)(pdStack_e8 + 2);\n    if (iVar29 == 1) {\n      iVar29 = 0x28;\n      goto LAB_000a6620;\n    }\n    pdVar6 = (double *)(**(code **)(puVar36 + 0x3047fc))(iVar29 + 2,0x28);\n    if (pdVar6 != (double *)0x0) {\n      iVar32 = iVar29 * 0x28;\n      (**(code **)(puVar36 + 0x304648))(pdVar6,pdStack_e8,iVar32);\n      pdVar7 = pdVar6 + iVar29 * 5;\n      if ((ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8) < dVar39) &&\n         (ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]) < dVar39)) {\n        if (*(int *)(param_2 + 0x248) - 1U < 2) {\n          pdVar8 = pdStack_e8 + 5;\n          do {\n            pdVar21 = pdVar7;\n            pdVar11 = pdVar8;\n            pdVar8 = pdVar11 + 2;\n            uVar28 = *(undefined4 *)(pdVar11 + 1);\n            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n            uVar27 = *(undefined4 *)pdVar11;\n            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);\n            *(undefined4 *)(pdVar21 + 1) = uVar28;\n            *(undefined4 *)pdVar21 = uVar27;\n            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;\n            pdVar7 = pdVar21 + 2;\n          } while (pdVar8 != pdStack_e8 + 9);\n          iVar32 = iVar32 + 0x28;\n          uVar26 = *(undefined4 *)pdVar8;\n          pdVar7 = pdVar6 + iVar29 * 5 + 5;\n          *(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14);\n          *(undefined4 *)(pdVar21 + 2) = uVar26;\n          iVar29 = iVar29 + 1;\n        }\n        iStack_188 = 1;\n        bVar2 = true;\n        bVar1 = iVar29 < 2;\n        *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n        if (bVar1) goto LAB_000a6124;\nLAB_000a4fe8:\n        dVar61 = *(double *)(iVar18 + 0x13f8);\n        dStack_260 = pdVar6[5] - *pdVar6;\n        dStack_258 = pdVar6[6] - pdVar6[1];\n        if ((dVar61 <= ABS(dStack_260)) || (dVar61 <= ABS(dStack_258))) {\n          iVar38 = 1;\n        }\n        else {\n          iVar38 = 1;\n          pdVar7 = pdVar6 + 10;\n          do {\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));\n        }\nLAB_000a5110:\n        uVar4 = iVar29 * 2;\n        pdVar7 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        pdVar8 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        if (pdVar7 == (double *)0x0) {\n          if (pdVar8 != (double *)0x0) {\n            (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n          uVar26 = 0x1c93;\n          goto LAB_000a5724;\n        }\n        if (pdVar8 == (double *)0x0) {\n          (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n          goto LAB_000a6cbc;\n        }\n        if (ABS(dStack_260) < *(double *)(iVar18 + 0x13f8)) {\n          dVar61 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else if (ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)) {\n          dVar52 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }\nLAB_000a51b0:\n        dVar42 = (double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18);\n        iVar16 = *(int *)(param_2 + 0x24c) * *(int *)(param_2 + 0x24c);\n        dVar42 = dVar42 * *(double *)(param_2 + 0x1b0) *\n                 *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400);\n        dVar46 = (double)iVar16;\n        if (iVar16 < 0) {\n          dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418);\n        }\n        dVar46 = dVar46 * dVar42 * dVar42;\n        if (*(int *)(param_2 + 0x244) == 3) {\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            iVar16 = iVar29 + -2;\n            dVar50 = pdVar11[1];\n            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);\n            pdVar21 = pdVar6 + iVar16 * 5;\n            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            dVar50 = pdVar21[1];\n            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            goto LAB_000a5220;\n          }\n        }\n        else {\nLAB_000a5220:\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n        }\n        dVar43 = dVar42 * dVar42;\n        dVar53 = dVar43 / (dVar61 * dVar61 + *(double *)(iVar16 + 0x1438));\n        dVar64 = SQRT(dVar53);\n        if (dVar53 < 0.0) {\n          (**(code **)(puVar36 + 0x304770))();\n        }\n        dVar61 = dVar61 * dVar64;\n        pdVar11 = pdVar6 + iVar38 * 5;\n        dVar58 = *pdVar11;\n        dVar62 = pdVar11[1];\n        dVar57 = dVar61 + pdVar6[1];\n        dVar55 = pdVar6[1] - dVar61;\n        dVar53 = dVar64 + *pdVar6;\n        dStack_238 = dVar62 - dVar61;\n        dStack_240 = dVar58 - dVar64;\n        dVar56 = *pdVar6 - dVar64;\n        dVar51 = dVar56;\n        dVar50 = dVar57;\n        dStack_250 = dVar64 + dVar58;\n        dStack_248 = dVar61 + dVar62;\n        if (0.0 < dVar64 * dStack_258 - dVar61 * dStack_260) {\n          dVar51 = dVar53;\n          dVar50 = dVar55;\n          dVar53 = dVar56;\n          dVar55 = dVar57;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar64 + dVar58;\n          dStack_238 = dVar61 + dVar62;\n        }\n        iVar32 = iVar38 + 1;\n        *pdVar8 = dVar51;\n        pdVar8[1] = dVar55;\n        *pdVar7 = dVar53;\n        pdVar7[1] = dVar50;\n        if (iVar32 < iVar29) {\n          iVar20 = *(int *)(puVar36 + 0x303bd8);\n          iVar33 = 1;\n          iVar35 = 1;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78);\n          dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar4;\n          do {\n            dVar44 = pdVar11[6];\n            dVar47 = pdVar11[5];\n            dVar48 = dVar44 - dVar62;\n            dVar54 = dVar47 - dVar58;\n            dVar49 = dVar47 - dVar58;\n            dVar56 = dStack_238;\n            dVar57 = dStack_240;\n            dVar59 = dStack_248;\n            dVar63 = dStack_250;\n            if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar63;\n            dStack_248 = dVar59;\n            dStack_240 = dVar57;\n            dStack_238 = dVar56;\n            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;\n            pdVar11 = pdVar11 + 5;\n            iVar32 = iVar32 + 1;\n            dVar58 = pdVar6[iVar38 * 5];\n            dVar62 = (pdVar6 + iVar38 * 5)[1];\n          } while( true );\n        }\n        iVar38 = 4;\n        iVar32 = 0x10;\n        iVar35 = 0x10;\n        iVar29 = 2;\n        goto LAB_000a5a70;\n      }\n      bVar1 = iVar29 < 2;\n      iStack_188 = 0;\n      bVar2 = false;\n      *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n      if (!bVar1) goto LAB_000a4fe8;\nLAB_000a6124:\n      if (iVar29 != 1) {\n        iVar38 = 1;\n        dStack_258 = 0.0;\n        dStack_260 = 0.0;\n        goto LAB_000a5110;\n      }\n      iVar38 = 1;\n      dStack_258 = 0.0;\n      iVar16 = *(int *)(param_2 + 0x244);\n      dStack_260 = 0.0;\njoined_r0x000a50f8:\n      if (iVar16 == 2) {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n        if (!bVar2) {\n          iVar38 = iVar38 + -1;\n          goto LAB_000a5110;\n        }\n      }\n      else {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n      }\n      puVar13 = (undefined4 *)(*pcVar37)(0x28);\n      pdVar7 = pdVar6;\n      puVar12 = puVar13;\n      do {\n        puVar22 = puVar12;\n        pdVar8 = pdVar7;\n        pdVar7 = pdVar8 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar8 + 4);\n        uVar27 = *(undefined4 *)(pdVar8 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar8 + 0xc);\n        *puVar22 = *(undefined4 *)pdVar8;\n        puVar22[1] = uVar28;\n        puVar22[2] = uVar27;\n        puVar22[3] = uVar26;\n        puVar12 = puVar22 + 4;\n      } while (pdVar7 != pdVar6 + 4);\n      uVar26 = *(undefined4 *)((int)pdVar8 + 0x14);\n      pcVar37 = *(code **)(puVar36 + 0x3042b0);\n      puVar22[4] = *(undefined4 *)pdVar7;\n      puVar22[5] = uVar26;\n      puVar13[4] = 0;\n      (*pcVar37)(pdVar6);\n      goto LAB_000a61cc;\n    }\n    uVar26 = 0x1c57;\nLAB_000a5724:\n    (**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               uVar26,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);\n    uStack_1d0 = 0;\n    goto LAB_000a5774;\n  }" ({ "{") (expression_statement "iVar18 = *(int *)(puVar36 + 0x303bd0);" (assignment_expression "iVar18 = *(int *)(puVar36 + 0x303bd0)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(puVar36 + 0x303bd0)" (* "*") (cast_expression "(int *)(puVar36 + 0x303bd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x303bd0)" (( "(") (binary_expression "puVar36 + 0x303bd0" (identifier "puVar36") (+ "+") (number_literal "0x303bd0")) () ")"))))) (; ";")) (expression_statement "iVar19 = *(int *)(puVar36 + 0x303bd8);" (assignment_expression "iVar19 = *(int *)(puVar36 + 0x303bd8)" (identifier "iVar19") (= "=") (pointer_expression "*(int *)(puVar36 + 0x303bd8)" (* "*") (cast_expression "(int *)(puVar36 + 0x303bd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x303bd8)" (( "(") (binary_expression "puVar36 + 0x303bd8" (identifier "puVar36") (+ "+") (number_literal "0x303bd8")) () ")"))))) (; ";")) (expression_statement "uStack_1d0 = 1;" (assignment_expression "uStack_1d0 = 1" (identifier "uStack_1d0") (= "=") (number_literal "1")) (; ";")) (expression_statement "dVar39 = *(double *)(iVar18 + 0x13f8);" (assignment_expression "dVar39 = *(double *)(iVar18 + 0x13f8)" (identifier "dVar39") (= "=") (pointer_expression "*(double *)(iVar18 + 0x13f8)" (* "*") (cast_expression "(double *)(iVar18 + 0x13f8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x13f8)" (( "(") (binary_expression "iVar18 + 0x13f8" (identifier "iVar18") (+ "+") (number_literal "0x13f8")) () ")"))))) (; ";")) (expression_statement "iVar15 = *(int *)(puVar36 + 0x303bd0);" (assignment_expression "iVar15 = *(int *)(puVar36 + 0x303bd0)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(puVar36 + 0x303bd0)" (* "*") (cast_expression "(int *)(puVar36 + 0x303bd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x303bd0)" (( "(") (binary_expression "puVar36 + 0x303bd0" (identifier "puVar36") (+ "+") (number_literal "0x303bd0")) () ")"))))) (; ";")) (expression_statement "dVar40 = *(double *)(iVar15 + 0x1410);" (assignment_expression "dVar40 = *(double *)(iVar15 + 0x1410)" (identifier "dVar40") (= "=") (pointer_expression "*(double *)(iVar15 + 0x1410)" (* "*") (cast_expression "(double *)(iVar15 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x1410)" (( "(") (binary_expression "iVar15 + 0x1410" (identifier "iVar15") (+ "+") (number_literal "0x1410")) () ")"))))) (; ";")) (expression_statement "uVar41 = *(undefined8 *)(iVar19 + 0x34a0);" (assignment_expression "uVar41 = *(undefined8 *)(iVar19 + 0x34a0)" (identifier "uVar41") (= "=") (pointer_expression "*(undefined8 *)(iVar19 + 0x34a0)" (* "*") (cast_expression "(undefined8 *)(iVar19 + 0x34a0)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x34a0)" (( "(") (binary_expression "iVar19 + 0x34a0" (identifier "iVar19") (+ "+") (number_literal "0x34a0")) () ")"))))) (; ";")) (labeled_statement "LAB_000a4e98:\n    iVar29 = *(int *)(pdStack_e8 + 2);" (statement_identifier "LAB_000a4e98") (: ":") (expression_statement "iVar29 = *(int *)(pdStack_e8 + 2);" (assignment_expression "iVar29 = *(int *)(pdStack_e8 + 2)" (identifier "iVar29") (= "=") (pointer_expression "*(int *)(pdStack_e8 + 2)" (* "*") (cast_expression "(int *)(pdStack_e8 + 2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdStack_e8 + 2)" (( "(") (binary_expression "pdStack_e8 + 2" (identifier "pdStack_e8") (+ "+") (number_literal "2")) () ")"))))) (; ";"))) (if_statement "if (iVar29 == 1) {\n      iVar29 = 0x28;\n      goto LAB_000a6620;\n    }" (if "if") (parenthesized_expression "(iVar29 == 1)" (( "(") (binary_expression "iVar29 == 1" (identifier "iVar29") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      iVar29 = 0x28;\n      goto LAB_000a6620;\n    }" ({ "{") (expression_statement "iVar29 = 0x28;" (assignment_expression "iVar29 = 0x28" (identifier "iVar29") (= "=") (number_literal "0x28")) (; ";")) (goto_statement "goto LAB_000a6620;" (goto "goto") (statement_identifier "LAB_000a6620") (; ";")) (} "}"))) (expression_statement "pdVar6 = (double *)(**(code **)(puVar36 + 0x3047fc))(iVar29 + 2,0x28);" (assignment_expression "pdVar6 = (double *)(**(code **)(puVar36 + 0x3047fc))(iVar29 + 2,0x28)" (identifier "pdVar6") (= "=") (cast_expression "(double *)(**(code **)(puVar36 + 0x3047fc))(iVar29 + 2,0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar36 + 0x3047fc))(iVar29 + 2,0x28)" (parenthesized_expression "(**(code **)(puVar36 + 0x3047fc))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x3047fc)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x3047fc)" (* "*") (cast_expression "(code **)(puVar36 + 0x3047fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3047fc)" (( "(") (binary_expression "puVar36 + 0x3047fc" (identifier "puVar36") (+ "+") (number_literal "0x3047fc")) () ")"))))) () ")")) (argument_list "(iVar29 + 2,0x28)" (( "(") (binary_expression "iVar29 + 2" (identifier "iVar29") (+ "+") (number_literal "2")) (, ",") (number_literal "0x28") () ")"))))) (; ";")) (if_statement "if (pdVar6 != (double *)0x0) {\n      iVar32 = iVar29 * 0x28;\n      (**(code **)(puVar36 + 0x304648))(pdVar6,pdStack_e8,iVar32);\n      pdVar7 = pdVar6 + iVar29 * 5;\n      if ((ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8) < dVar39) &&\n         (ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]) < dVar39)) {\n        if (*(int *)(param_2 + 0x248) - 1U < 2) {\n          pdVar8 = pdStack_e8 + 5;\n          do {\n            pdVar21 = pdVar7;\n            pdVar11 = pdVar8;\n            pdVar8 = pdVar11 + 2;\n            uVar28 = *(undefined4 *)(pdVar11 + 1);\n            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n            uVar27 = *(undefined4 *)pdVar11;\n            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);\n            *(undefined4 *)(pdVar21 + 1) = uVar28;\n            *(undefined4 *)pdVar21 = uVar27;\n            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;\n            pdVar7 = pdVar21 + 2;\n          } while (pdVar8 != pdStack_e8 + 9);\n          iVar32 = iVar32 + 0x28;\n          uVar26 = *(undefined4 *)pdVar8;\n          pdVar7 = pdVar6 + iVar29 * 5 + 5;\n          *(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14);\n          *(undefined4 *)(pdVar21 + 2) = uVar26;\n          iVar29 = iVar29 + 1;\n        }\n        iStack_188 = 1;\n        bVar2 = true;\n        bVar1 = iVar29 < 2;\n        *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n        if (bVar1) goto LAB_000a6124;\nLAB_000a4fe8:\n        dVar61 = *(double *)(iVar18 + 0x13f8);\n        dStack_260 = pdVar6[5] - *pdVar6;\n        dStack_258 = pdVar6[6] - pdVar6[1];\n        if ((dVar61 <= ABS(dStack_260)) || (dVar61 <= ABS(dStack_258))) {\n          iVar38 = 1;\n        }\n        else {\n          iVar38 = 1;\n          pdVar7 = pdVar6 + 10;\n          do {\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));\n        }\nLAB_000a5110:\n        uVar4 = iVar29 * 2;\n        pdVar7 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        pdVar8 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        if (pdVar7 == (double *)0x0) {\n          if (pdVar8 != (double *)0x0) {\n            (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n          uVar26 = 0x1c93;\n          goto LAB_000a5724;\n        }\n        if (pdVar8 == (double *)0x0) {\n          (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n          goto LAB_000a6cbc;\n        }\n        if (ABS(dStack_260) < *(double *)(iVar18 + 0x13f8)) {\n          dVar61 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else if (ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)) {\n          dVar52 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }\nLAB_000a51b0:\n        dVar42 = (double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18);\n        iVar16 = *(int *)(param_2 + 0x24c) * *(int *)(param_2 + 0x24c);\n        dVar42 = dVar42 * *(double *)(param_2 + 0x1b0) *\n                 *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400);\n        dVar46 = (double)iVar16;\n        if (iVar16 < 0) {\n          dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418);\n        }\n        dVar46 = dVar46 * dVar42 * dVar42;\n        if (*(int *)(param_2 + 0x244) == 3) {\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            iVar16 = iVar29 + -2;\n            dVar50 = pdVar11[1];\n            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);\n            pdVar21 = pdVar6 + iVar16 * 5;\n            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            dVar50 = pdVar21[1];\n            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            goto LAB_000a5220;\n          }\n        }\n        else {\nLAB_000a5220:\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n        }\n        dVar43 = dVar42 * dVar42;\n        dVar53 = dVar43 / (dVar61 * dVar61 + *(double *)(iVar16 + 0x1438));\n        dVar64 = SQRT(dVar53);\n        if (dVar53 < 0.0) {\n          (**(code **)(puVar36 + 0x304770))();\n        }\n        dVar61 = dVar61 * dVar64;\n        pdVar11 = pdVar6 + iVar38 * 5;\n        dVar58 = *pdVar11;\n        dVar62 = pdVar11[1];\n        dVar57 = dVar61 + pdVar6[1];\n        dVar55 = pdVar6[1] - dVar61;\n        dVar53 = dVar64 + *pdVar6;\n        dStack_238 = dVar62 - dVar61;\n        dStack_240 = dVar58 - dVar64;\n        dVar56 = *pdVar6 - dVar64;\n        dVar51 = dVar56;\n        dVar50 = dVar57;\n        dStack_250 = dVar64 + dVar58;\n        dStack_248 = dVar61 + dVar62;\n        if (0.0 < dVar64 * dStack_258 - dVar61 * dStack_260) {\n          dVar51 = dVar53;\n          dVar50 = dVar55;\n          dVar53 = dVar56;\n          dVar55 = dVar57;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar64 + dVar58;\n          dStack_238 = dVar61 + dVar62;\n        }\n        iVar32 = iVar38 + 1;\n        *pdVar8 = dVar51;\n        pdVar8[1] = dVar55;\n        *pdVar7 = dVar53;\n        pdVar7[1] = dVar50;\n        if (iVar32 < iVar29) {\n          iVar20 = *(int *)(puVar36 + 0x303bd8);\n          iVar33 = 1;\n          iVar35 = 1;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78);\n          dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar4;\n          do {\n            dVar44 = pdVar11[6];\n            dVar47 = pdVar11[5];\n            dVar48 = dVar44 - dVar62;\n            dVar54 = dVar47 - dVar58;\n            dVar49 = dVar47 - dVar58;\n            dVar56 = dStack_238;\n            dVar57 = dStack_240;\n            dVar59 = dStack_248;\n            dVar63 = dStack_250;\n            if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar63;\n            dStack_248 = dVar59;\n            dStack_240 = dVar57;\n            dStack_238 = dVar56;\n            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;\n            pdVar11 = pdVar11 + 5;\n            iVar32 = iVar32 + 1;\n            dVar58 = pdVar6[iVar38 * 5];\n            dVar62 = (pdVar6 + iVar38 * 5)[1];\n          } while( true );\n        }\n        iVar38 = 4;\n        iVar32 = 0x10;\n        iVar35 = 0x10;\n        iVar29 = 2;\n        goto LAB_000a5a70;\n      }\n      bVar1 = iVar29 < 2;\n      iStack_188 = 0;\n      bVar2 = false;\n      *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n      if (!bVar1) goto LAB_000a4fe8;\nLAB_000a6124:\n      if (iVar29 != 1) {\n        iVar38 = 1;\n        dStack_258 = 0.0;\n        dStack_260 = 0.0;\n        goto LAB_000a5110;\n      }\n      iVar38 = 1;\n      dStack_258 = 0.0;\n      iVar16 = *(int *)(param_2 + 0x244);\n      dStack_260 = 0.0;\njoined_r0x000a50f8:\n      if (iVar16 == 2) {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n        if (!bVar2) {\n          iVar38 = iVar38 + -1;\n          goto LAB_000a5110;\n        }\n      }\n      else {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n      }\n      puVar13 = (undefined4 *)(*pcVar37)(0x28);\n      pdVar7 = pdVar6;\n      puVar12 = puVar13;\n      do {\n        puVar22 = puVar12;\n        pdVar8 = pdVar7;\n        pdVar7 = pdVar8 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar8 + 4);\n        uVar27 = *(undefined4 *)(pdVar8 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar8 + 0xc);\n        *puVar22 = *(undefined4 *)pdVar8;\n        puVar22[1] = uVar28;\n        puVar22[2] = uVar27;\n        puVar22[3] = uVar26;\n        puVar12 = puVar22 + 4;\n      } while (pdVar7 != pdVar6 + 4);\n      uVar26 = *(undefined4 *)((int)pdVar8 + 0x14);\n      pcVar37 = *(code **)(puVar36 + 0x3042b0);\n      puVar22[4] = *(undefined4 *)pdVar7;\n      puVar22[5] = uVar26;\n      puVar13[4] = 0;\n      (*pcVar37)(pdVar6);\n      goto LAB_000a61cc;\n    }" (if "if") (parenthesized_expression "(pdVar6 != (double *)0x0)" (( "(") (binary_expression "pdVar6 != (double *)0x0" (identifier "pdVar6") (!= "!=") (cast_expression "(double *)0x0" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      iVar32 = iVar29 * 0x28;\n      (**(code **)(puVar36 + 0x304648))(pdVar6,pdStack_e8,iVar32);\n      pdVar7 = pdVar6 + iVar29 * 5;\n      if ((ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8) < dVar39) &&\n         (ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]) < dVar39)) {\n        if (*(int *)(param_2 + 0x248) - 1U < 2) {\n          pdVar8 = pdStack_e8 + 5;\n          do {\n            pdVar21 = pdVar7;\n            pdVar11 = pdVar8;\n            pdVar8 = pdVar11 + 2;\n            uVar28 = *(undefined4 *)(pdVar11 + 1);\n            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n            uVar27 = *(undefined4 *)pdVar11;\n            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);\n            *(undefined4 *)(pdVar21 + 1) = uVar28;\n            *(undefined4 *)pdVar21 = uVar27;\n            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;\n            pdVar7 = pdVar21 + 2;\n          } while (pdVar8 != pdStack_e8 + 9);\n          iVar32 = iVar32 + 0x28;\n          uVar26 = *(undefined4 *)pdVar8;\n          pdVar7 = pdVar6 + iVar29 * 5 + 5;\n          *(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14);\n          *(undefined4 *)(pdVar21 + 2) = uVar26;\n          iVar29 = iVar29 + 1;\n        }\n        iStack_188 = 1;\n        bVar2 = true;\n        bVar1 = iVar29 < 2;\n        *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n        if (bVar1) goto LAB_000a6124;\nLAB_000a4fe8:\n        dVar61 = *(double *)(iVar18 + 0x13f8);\n        dStack_260 = pdVar6[5] - *pdVar6;\n        dStack_258 = pdVar6[6] - pdVar6[1];\n        if ((dVar61 <= ABS(dStack_260)) || (dVar61 <= ABS(dStack_258))) {\n          iVar38 = 1;\n        }\n        else {\n          iVar38 = 1;\n          pdVar7 = pdVar6 + 10;\n          do {\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));\n        }\nLAB_000a5110:\n        uVar4 = iVar29 * 2;\n        pdVar7 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        pdVar8 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        if (pdVar7 == (double *)0x0) {\n          if (pdVar8 != (double *)0x0) {\n            (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n          uVar26 = 0x1c93;\n          goto LAB_000a5724;\n        }\n        if (pdVar8 == (double *)0x0) {\n          (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n          goto LAB_000a6cbc;\n        }\n        if (ABS(dStack_260) < *(double *)(iVar18 + 0x13f8)) {\n          dVar61 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else if (ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)) {\n          dVar52 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }\nLAB_000a51b0:\n        dVar42 = (double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18);\n        iVar16 = *(int *)(param_2 + 0x24c) * *(int *)(param_2 + 0x24c);\n        dVar42 = dVar42 * *(double *)(param_2 + 0x1b0) *\n                 *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400);\n        dVar46 = (double)iVar16;\n        if (iVar16 < 0) {\n          dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418);\n        }\n        dVar46 = dVar46 * dVar42 * dVar42;\n        if (*(int *)(param_2 + 0x244) == 3) {\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            iVar16 = iVar29 + -2;\n            dVar50 = pdVar11[1];\n            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);\n            pdVar21 = pdVar6 + iVar16 * 5;\n            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            dVar50 = pdVar21[1];\n            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            goto LAB_000a5220;\n          }\n        }\n        else {\nLAB_000a5220:\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n        }\n        dVar43 = dVar42 * dVar42;\n        dVar53 = dVar43 / (dVar61 * dVar61 + *(double *)(iVar16 + 0x1438));\n        dVar64 = SQRT(dVar53);\n        if (dVar53 < 0.0) {\n          (**(code **)(puVar36 + 0x304770))();\n        }\n        dVar61 = dVar61 * dVar64;\n        pdVar11 = pdVar6 + iVar38 * 5;\n        dVar58 = *pdVar11;\n        dVar62 = pdVar11[1];\n        dVar57 = dVar61 + pdVar6[1];\n        dVar55 = pdVar6[1] - dVar61;\n        dVar53 = dVar64 + *pdVar6;\n        dStack_238 = dVar62 - dVar61;\n        dStack_240 = dVar58 - dVar64;\n        dVar56 = *pdVar6 - dVar64;\n        dVar51 = dVar56;\n        dVar50 = dVar57;\n        dStack_250 = dVar64 + dVar58;\n        dStack_248 = dVar61 + dVar62;\n        if (0.0 < dVar64 * dStack_258 - dVar61 * dStack_260) {\n          dVar51 = dVar53;\n          dVar50 = dVar55;\n          dVar53 = dVar56;\n          dVar55 = dVar57;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar64 + dVar58;\n          dStack_238 = dVar61 + dVar62;\n        }\n        iVar32 = iVar38 + 1;\n        *pdVar8 = dVar51;\n        pdVar8[1] = dVar55;\n        *pdVar7 = dVar53;\n        pdVar7[1] = dVar50;\n        if (iVar32 < iVar29) {\n          iVar20 = *(int *)(puVar36 + 0x303bd8);\n          iVar33 = 1;\n          iVar35 = 1;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78);\n          dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar4;\n          do {\n            dVar44 = pdVar11[6];\n            dVar47 = pdVar11[5];\n            dVar48 = dVar44 - dVar62;\n            dVar54 = dVar47 - dVar58;\n            dVar49 = dVar47 - dVar58;\n            dVar56 = dStack_238;\n            dVar57 = dStack_240;\n            dVar59 = dStack_248;\n            dVar63 = dStack_250;\n            if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar63;\n            dStack_248 = dVar59;\n            dStack_240 = dVar57;\n            dStack_238 = dVar56;\n            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;\n            pdVar11 = pdVar11 + 5;\n            iVar32 = iVar32 + 1;\n            dVar58 = pdVar6[iVar38 * 5];\n            dVar62 = (pdVar6 + iVar38 * 5)[1];\n          } while( true );\n        }\n        iVar38 = 4;\n        iVar32 = 0x10;\n        iVar35 = 0x10;\n        iVar29 = 2;\n        goto LAB_000a5a70;\n      }\n      bVar1 = iVar29 < 2;\n      iStack_188 = 0;\n      bVar2 = false;\n      *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n      if (!bVar1) goto LAB_000a4fe8;\nLAB_000a6124:\n      if (iVar29 != 1) {\n        iVar38 = 1;\n        dStack_258 = 0.0;\n        dStack_260 = 0.0;\n        goto LAB_000a5110;\n      }\n      iVar38 = 1;\n      dStack_258 = 0.0;\n      iVar16 = *(int *)(param_2 + 0x244);\n      dStack_260 = 0.0;\njoined_r0x000a50f8:\n      if (iVar16 == 2) {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n        if (!bVar2) {\n          iVar38 = iVar38 + -1;\n          goto LAB_000a5110;\n        }\n      }\n      else {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n      }\n      puVar13 = (undefined4 *)(*pcVar37)(0x28);\n      pdVar7 = pdVar6;\n      puVar12 = puVar13;\n      do {\n        puVar22 = puVar12;\n        pdVar8 = pdVar7;\n        pdVar7 = pdVar8 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar8 + 4);\n        uVar27 = *(undefined4 *)(pdVar8 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar8 + 0xc);\n        *puVar22 = *(undefined4 *)pdVar8;\n        puVar22[1] = uVar28;\n        puVar22[2] = uVar27;\n        puVar22[3] = uVar26;\n        puVar12 = puVar22 + 4;\n      } while (pdVar7 != pdVar6 + 4);\n      uVar26 = *(undefined4 *)((int)pdVar8 + 0x14);\n      pcVar37 = *(code **)(puVar36 + 0x3042b0);\n      puVar22[4] = *(undefined4 *)pdVar7;\n      puVar22[5] = uVar26;\n      puVar13[4] = 0;\n      (*pcVar37)(pdVar6);\n      goto LAB_000a61cc;\n    }" ({ "{") (expression_statement "iVar32 = iVar29 * 0x28;" (assignment_expression "iVar32 = iVar29 * 0x28" (identifier "iVar32") (= "=") (binary_expression "iVar29 * 0x28" (identifier "iVar29") (* "*") (number_literal "0x28"))) (; ";")) (expression_statement "(**(code **)(puVar36 + 0x304648))(pdVar6,pdStack_e8,iVar32);" (call_expression "(**(code **)(puVar36 + 0x304648))(pdVar6,pdStack_e8,iVar32)" (parenthesized_expression "(**(code **)(puVar36 + 0x304648))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x304648)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x304648)" (* "*") (cast_expression "(code **)(puVar36 + 0x304648)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x304648)" (( "(") (binary_expression "puVar36 + 0x304648" (identifier "puVar36") (+ "+") (number_literal "0x304648")) () ")"))))) () ")")) (argument_list "(pdVar6,pdStack_e8,iVar32)" (( "(") (identifier "pdVar6") (, ",") (identifier "pdStack_e8") (, ",") (identifier "iVar32") () ")"))) (; ";")) (expression_statement "pdVar7 = pdVar6 + iVar29 * 5;" (assignment_expression "pdVar7 = pdVar6 + iVar29 * 5" (identifier "pdVar7") (= "=") (binary_expression "pdVar6 + iVar29 * 5" (identifier "pdVar6") (+ "+") (binary_expression "iVar29 * 5" (identifier "iVar29") (* "*") (number_literal "5")))) (; ";")) (if_statement "if ((ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8) < dVar39) &&\n         (ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]) < dVar39)) {\n        if (*(int *)(param_2 + 0x248) - 1U < 2) {\n          pdVar8 = pdStack_e8 + 5;\n          do {\n            pdVar21 = pdVar7;\n            pdVar11 = pdVar8;\n            pdVar8 = pdVar11 + 2;\n            uVar28 = *(undefined4 *)(pdVar11 + 1);\n            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n            uVar27 = *(undefined4 *)pdVar11;\n            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);\n            *(undefined4 *)(pdVar21 + 1) = uVar28;\n            *(undefined4 *)pdVar21 = uVar27;\n            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;\n            pdVar7 = pdVar21 + 2;\n          } while (pdVar8 != pdStack_e8 + 9);\n          iVar32 = iVar32 + 0x28;\n          uVar26 = *(undefined4 *)pdVar8;\n          pdVar7 = pdVar6 + iVar29 * 5 + 5;\n          *(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14);\n          *(undefined4 *)(pdVar21 + 2) = uVar26;\n          iVar29 = iVar29 + 1;\n        }\n        iStack_188 = 1;\n        bVar2 = true;\n        bVar1 = iVar29 < 2;\n        *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n        if (bVar1) goto LAB_000a6124;\nLAB_000a4fe8:\n        dVar61 = *(double *)(iVar18 + 0x13f8);\n        dStack_260 = pdVar6[5] - *pdVar6;\n        dStack_258 = pdVar6[6] - pdVar6[1];\n        if ((dVar61 <= ABS(dStack_260)) || (dVar61 <= ABS(dStack_258))) {\n          iVar38 = 1;\n        }\n        else {\n          iVar38 = 1;\n          pdVar7 = pdVar6 + 10;\n          do {\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));\n        }\nLAB_000a5110:\n        uVar4 = iVar29 * 2;\n        pdVar7 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        pdVar8 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        if (pdVar7 == (double *)0x0) {\n          if (pdVar8 != (double *)0x0) {\n            (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n          uVar26 = 0x1c93;\n          goto LAB_000a5724;\n        }\n        if (pdVar8 == (double *)0x0) {\n          (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n          goto LAB_000a6cbc;\n        }\n        if (ABS(dStack_260) < *(double *)(iVar18 + 0x13f8)) {\n          dVar61 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else if (ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)) {\n          dVar52 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }\nLAB_000a51b0:\n        dVar42 = (double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18);\n        iVar16 = *(int *)(param_2 + 0x24c) * *(int *)(param_2 + 0x24c);\n        dVar42 = dVar42 * *(double *)(param_2 + 0x1b0) *\n                 *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400);\n        dVar46 = (double)iVar16;\n        if (iVar16 < 0) {\n          dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418);\n        }\n        dVar46 = dVar46 * dVar42 * dVar42;\n        if (*(int *)(param_2 + 0x244) == 3) {\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            iVar16 = iVar29 + -2;\n            dVar50 = pdVar11[1];\n            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);\n            pdVar21 = pdVar6 + iVar16 * 5;\n            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            dVar50 = pdVar21[1];\n            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            goto LAB_000a5220;\n          }\n        }\n        else {\nLAB_000a5220:\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n        }\n        dVar43 = dVar42 * dVar42;\n        dVar53 = dVar43 / (dVar61 * dVar61 + *(double *)(iVar16 + 0x1438));\n        dVar64 = SQRT(dVar53);\n        if (dVar53 < 0.0) {\n          (**(code **)(puVar36 + 0x304770))();\n        }\n        dVar61 = dVar61 * dVar64;\n        pdVar11 = pdVar6 + iVar38 * 5;\n        dVar58 = *pdVar11;\n        dVar62 = pdVar11[1];\n        dVar57 = dVar61 + pdVar6[1];\n        dVar55 = pdVar6[1] - dVar61;\n        dVar53 = dVar64 + *pdVar6;\n        dStack_238 = dVar62 - dVar61;\n        dStack_240 = dVar58 - dVar64;\n        dVar56 = *pdVar6 - dVar64;\n        dVar51 = dVar56;\n        dVar50 = dVar57;\n        dStack_250 = dVar64 + dVar58;\n        dStack_248 = dVar61 + dVar62;\n        if (0.0 < dVar64 * dStack_258 - dVar61 * dStack_260) {\n          dVar51 = dVar53;\n          dVar50 = dVar55;\n          dVar53 = dVar56;\n          dVar55 = dVar57;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar64 + dVar58;\n          dStack_238 = dVar61 + dVar62;\n        }\n        iVar32 = iVar38 + 1;\n        *pdVar8 = dVar51;\n        pdVar8[1] = dVar55;\n        *pdVar7 = dVar53;\n        pdVar7[1] = dVar50;\n        if (iVar32 < iVar29) {\n          iVar20 = *(int *)(puVar36 + 0x303bd8);\n          iVar33 = 1;\n          iVar35 = 1;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78);\n          dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar4;\n          do {\n            dVar44 = pdVar11[6];\n            dVar47 = pdVar11[5];\n            dVar48 = dVar44 - dVar62;\n            dVar54 = dVar47 - dVar58;\n            dVar49 = dVar47 - dVar58;\n            dVar56 = dStack_238;\n            dVar57 = dStack_240;\n            dVar59 = dStack_248;\n            dVar63 = dStack_250;\n            if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar63;\n            dStack_248 = dVar59;\n            dStack_240 = dVar57;\n            dStack_238 = dVar56;\n            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;\n            pdVar11 = pdVar11 + 5;\n            iVar32 = iVar32 + 1;\n            dVar58 = pdVar6[iVar38 * 5];\n            dVar62 = (pdVar6 + iVar38 * 5)[1];\n          } while( true );\n        }\n        iVar38 = 4;\n        iVar32 = 0x10;\n        iVar35 = 0x10;\n        iVar29 = 2;\n        goto LAB_000a5a70;\n      }" (if "if") (parenthesized_expression "((ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8) < dVar39) &&\n         (ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]) < dVar39))" (( "(") (binary_expression "(ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8) < dVar39) &&\n         (ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]) < dVar39)" (parenthesized_expression "(ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8) < dVar39)" (( "(") (binary_expression "ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8) < dVar39" (call_expression "ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8)" (identifier "ABS") (argument_list "(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8)" (( "(") (binary_expression "pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8" (subscript_expression "pdStack_e8[iVar29 * 5 + -5]" (identifier "pdStack_e8") ([ "[") (binary_expression "iVar29 * 5 + -5" (binary_expression "iVar29 * 5" (identifier "iVar29") (* "*") (number_literal "5")) (+ "+") (number_literal "-5")) (] "]")) (- "-") (pointer_expression "*pdStack_e8" (* "*") (identifier "pdStack_e8"))) () ")"))) (< "<") (identifier "dVar39")) () ")")) (&& "&&") (parenthesized_expression "(ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]) < dVar39)" (( "(") (binary_expression "ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]) < dVar39" (call_expression "ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1])" (identifier "ABS") (argument_list "((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1])" (( "(") (binary_expression "(pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]" (subscript_expression "(pdStack_e8 + iVar29 * 5 + -5)[1]" (parenthesized_expression "(pdStack_e8 + iVar29 * 5 + -5)" (( "(") (binary_expression "pdStack_e8 + iVar29 * 5 + -5" (binary_expression "pdStack_e8 + iVar29 * 5" (identifier "pdStack_e8") (+ "+") (binary_expression "iVar29 * 5" (identifier "iVar29") (* "*") (number_literal "5"))) (+ "+") (number_literal "-5")) () ")")) ([ "[") (number_literal "1") (] "]")) (- "-") (subscript_expression "pdStack_e8[1]" (identifier "pdStack_e8") ([ "[") (number_literal "1") (] "]"))) () ")"))) (< "<") (identifier "dVar39")) () ")"))) () ")")) (compound_statement "{\n        if (*(int *)(param_2 + 0x248) - 1U < 2) {\n          pdVar8 = pdStack_e8 + 5;\n          do {\n            pdVar21 = pdVar7;\n            pdVar11 = pdVar8;\n            pdVar8 = pdVar11 + 2;\n            uVar28 = *(undefined4 *)(pdVar11 + 1);\n            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n            uVar27 = *(undefined4 *)pdVar11;\n            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);\n            *(undefined4 *)(pdVar21 + 1) = uVar28;\n            *(undefined4 *)pdVar21 = uVar27;\n            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;\n            pdVar7 = pdVar21 + 2;\n          } while (pdVar8 != pdStack_e8 + 9);\n          iVar32 = iVar32 + 0x28;\n          uVar26 = *(undefined4 *)pdVar8;\n          pdVar7 = pdVar6 + iVar29 * 5 + 5;\n          *(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14);\n          *(undefined4 *)(pdVar21 + 2) = uVar26;\n          iVar29 = iVar29 + 1;\n        }\n        iStack_188 = 1;\n        bVar2 = true;\n        bVar1 = iVar29 < 2;\n        *(undefined4 *)((int)pdVar7 + 0x14) = 0;\n        if (bVar1) goto LAB_000a6124;\nLAB_000a4fe8:\n        dVar61 = *(double *)(iVar18 + 0x13f8);\n        dStack_260 = pdVar6[5] - *pdVar6;\n        dStack_258 = pdVar6[6] - pdVar6[1];\n        if ((dVar61 <= ABS(dStack_260)) || (dVar61 <= ABS(dStack_258))) {\n          iVar38 = 1;\n        }\n        else {\n          iVar38 = 1;\n          pdVar7 = pdVar6 + 10;\n          do {\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));\n        }\nLAB_000a5110:\n        uVar4 = iVar29 * 2;\n        pdVar7 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        pdVar8 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);\n        if (pdVar7 == (double *)0x0) {\n          if (pdVar8 != (double *)0x0) {\n            (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n          uVar26 = 0x1c93;\n          goto LAB_000a5724;\n        }\n        if (pdVar8 == (double *)0x0) {\n          (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n          goto LAB_000a6cbc;\n        }\n        if (ABS(dStack_260) < *(double *)(iVar18 + 0x13f8)) {\n          dVar61 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else if (ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)) {\n          dVar52 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }\nLAB_000a51b0:\n        dVar42 = (double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18);\n        iVar16 = *(int *)(param_2 + 0x24c) * *(int *)(param_2 + 0x24c);\n        dVar42 = dVar42 * *(double *)(param_2 + 0x1b0) *\n                 *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400);\n        dVar46 = (double)iVar16;\n        if (iVar16 < 0) {\n          dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418);\n        }\n        dVar46 = dVar46 * dVar42 * dVar42;\n        if (*(int *)(param_2 + 0x244) == 3) {\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            iVar16 = iVar29 + -2;\n            dVar50 = pdVar11[1];\n            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);\n            pdVar21 = pdVar6 + iVar16 * 5;\n            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            dVar50 = pdVar21[1];\n            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            goto LAB_000a5220;\n          }\n        }\n        else {\nLAB_000a5220:\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n        }\n        dVar43 = dVar42 * dVar42;\n        dVar53 = dVar43 / (dVar61 * dVar61 + *(double *)(iVar16 + 0x1438));\n        dVar64 = SQRT(dVar53);\n        if (dVar53 < 0.0) {\n          (**(code **)(puVar36 + 0x304770))();\n        }\n        dVar61 = dVar61 * dVar64;\n        pdVar11 = pdVar6 + iVar38 * 5;\n        dVar58 = *pdVar11;\n        dVar62 = pdVar11[1];\n        dVar57 = dVar61 + pdVar6[1];\n        dVar55 = pdVar6[1] - dVar61;\n        dVar53 = dVar64 + *pdVar6;\n        dStack_238 = dVar62 - dVar61;\n        dStack_240 = dVar58 - dVar64;\n        dVar56 = *pdVar6 - dVar64;\n        dVar51 = dVar56;\n        dVar50 = dVar57;\n        dStack_250 = dVar64 + dVar58;\n        dStack_248 = dVar61 + dVar62;\n        if (0.0 < dVar64 * dStack_258 - dVar61 * dStack_260) {\n          dVar51 = dVar53;\n          dVar50 = dVar55;\n          dVar53 = dVar56;\n          dVar55 = dVar57;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar64 + dVar58;\n          dStack_238 = dVar61 + dVar62;\n        }\n        iVar32 = iVar38 + 1;\n        *pdVar8 = dVar51;\n        pdVar8[1] = dVar55;\n        *pdVar7 = dVar53;\n        pdVar7[1] = dVar50;\n        if (iVar32 < iVar29) {\n          iVar20 = *(int *)(puVar36 + 0x303bd8);\n          iVar33 = 1;\n          iVar35 = 1;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78);\n          dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar4;\n          do {\n            dVar44 = pdVar11[6];\n            dVar47 = pdVar11[5];\n            dVar48 = dVar44 - dVar62;\n            dVar54 = dVar47 - dVar58;\n            dVar49 = dVar47 - dVar58;\n            dVar56 = dStack_238;\n            dVar57 = dStack_240;\n            dVar59 = dStack_248;\n            dVar63 = dStack_250;\n            if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar63;\n            dStack_248 = dVar59;\n            dStack_240 = dVar57;\n            dStack_238 = dVar56;\n            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;\n            pdVar11 = pdVar11 + 5;\n            iVar32 = iVar32 + 1;\n            dVar58 = pdVar6[iVar38 * 5];\n            dVar62 = (pdVar6 + iVar38 * 5)[1];\n          } while( true );\n        }\n        iVar38 = 4;\n        iVar32 = 0x10;\n        iVar35 = 0x10;\n        iVar29 = 2;\n        goto LAB_000a5a70;\n      }" ({ "{") (if_statement "if (*(int *)(param_2 + 0x248) - 1U < 2) {\n          pdVar8 = pdStack_e8 + 5;\n          do {\n            pdVar21 = pdVar7;\n            pdVar11 = pdVar8;\n            pdVar8 = pdVar11 + 2;\n            uVar28 = *(undefined4 *)(pdVar11 + 1);\n            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n            uVar27 = *(undefined4 *)pdVar11;\n            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);\n            *(undefined4 *)(pdVar21 + 1) = uVar28;\n            *(undefined4 *)pdVar21 = uVar27;\n            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;\n            pdVar7 = pdVar21 + 2;\n          } while (pdVar8 != pdStack_e8 + 9);\n          iVar32 = iVar32 + 0x28;\n          uVar26 = *(undefined4 *)pdVar8;\n          pdVar7 = pdVar6 + iVar29 * 5 + 5;\n          *(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14);\n          *(undefined4 *)(pdVar21 + 2) = uVar26;\n          iVar29 = iVar29 + 1;\n        }" (if "if") (parenthesized_expression "(*(int *)(param_2 + 0x248) - 1U < 2)" (( "(") (binary_expression "*(int *)(param_2 + 0x248) - 1U < 2" (binary_expression "*(int *)(param_2 + 0x248) - 1U" (pointer_expression "*(int *)(param_2 + 0x248)" (* "*") (cast_expression "(int *)(param_2 + 0x248)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x248)" (( "(") (binary_expression "param_2 + 0x248" (identifier "param_2") (+ "+") (number_literal "0x248")) () ")")))) (- "-") (number_literal "1U")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n          pdVar8 = pdStack_e8 + 5;\n          do {\n            pdVar21 = pdVar7;\n            pdVar11 = pdVar8;\n            pdVar8 = pdVar11 + 2;\n            uVar28 = *(undefined4 *)(pdVar11 + 1);\n            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n            uVar27 = *(undefined4 *)pdVar11;\n            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);\n            *(undefined4 *)(pdVar21 + 1) = uVar28;\n            *(undefined4 *)pdVar21 = uVar27;\n            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;\n            pdVar7 = pdVar21 + 2;\n          } while (pdVar8 != pdStack_e8 + 9);\n          iVar32 = iVar32 + 0x28;\n          uVar26 = *(undefined4 *)pdVar8;\n          pdVar7 = pdVar6 + iVar29 * 5 + 5;\n          *(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14);\n          *(undefined4 *)(pdVar21 + 2) = uVar26;\n          iVar29 = iVar29 + 1;\n        }" ({ "{") (expression_statement "pdVar8 = pdStack_e8 + 5;" (assignment_expression "pdVar8 = pdStack_e8 + 5" (identifier "pdVar8") (= "=") (binary_expression "pdStack_e8 + 5" (identifier "pdStack_e8") (+ "+") (number_literal "5"))) (; ";")) (do_statement "do {\n            pdVar21 = pdVar7;\n            pdVar11 = pdVar8;\n            pdVar8 = pdVar11 + 2;\n            uVar28 = *(undefined4 *)(pdVar11 + 1);\n            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n            uVar27 = *(undefined4 *)pdVar11;\n            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);\n            *(undefined4 *)(pdVar21 + 1) = uVar28;\n            *(undefined4 *)pdVar21 = uVar27;\n            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;\n            pdVar7 = pdVar21 + 2;\n          } while (pdVar8 != pdStack_e8 + 9);" (do "do") (compound_statement "{\n            pdVar21 = pdVar7;\n            pdVar11 = pdVar8;\n            pdVar8 = pdVar11 + 2;\n            uVar28 = *(undefined4 *)(pdVar11 + 1);\n            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n            uVar27 = *(undefined4 *)pdVar11;\n            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);\n            *(undefined4 *)(pdVar21 + 1) = uVar28;\n            *(undefined4 *)pdVar21 = uVar27;\n            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;\n            pdVar7 = pdVar21 + 2;\n          }" ({ "{") (expression_statement "pdVar21 = pdVar7;" (assignment_expression "pdVar21 = pdVar7" (identifier "pdVar21") (= "=") (identifier "pdVar7")) (; ";")) (expression_statement "pdVar11 = pdVar8;" (assignment_expression "pdVar11 = pdVar8" (identifier "pdVar11") (= "=") (identifier "pdVar8")) (; ";")) (expression_statement "pdVar8 = pdVar11 + 2;" (assignment_expression "pdVar8 = pdVar11 + 2" (identifier "pdVar8") (= "=") (binary_expression "pdVar11 + 2" (identifier "pdVar11") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "uVar28 = *(undefined4 *)(pdVar11 + 1);" (assignment_expression "uVar28 = *(undefined4 *)(pdVar11 + 1)" (identifier "uVar28") (= "=") (pointer_expression "*(undefined4 *)(pdVar11 + 1)" (* "*") (cast_expression "(undefined4 *)(pdVar11 + 1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar11 + 1)" (( "(") (binary_expression "pdVar11 + 1" (identifier "pdVar11") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar11 + 0xc)" (identifier "uVar26") (= "=") (pointer_expression "*(undefined4 *)((int)pdVar11 + 0xc)" (* "*") (cast_expression "(undefined4 *)((int)pdVar11 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar11 + 0xc)" (( "(") (binary_expression "(int)pdVar11 + 0xc" (cast_expression "(int)pdVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar11")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "uVar27 = *(undefined4 *)pdVar11;" (assignment_expression "uVar27 = *(undefined4 *)pdVar11" (identifier "uVar27") (= "=") (pointer_expression "*(undefined4 *)pdVar11" (* "*") (cast_expression "(undefined4 *)pdVar11" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pdVar11")))) (; ";")) (expression_statement "*(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);" (assignment_expression "*(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4)" (pointer_expression "*(undefined4 *)((int)pdVar21 + 4)" (* "*") (cast_expression "(undefined4 *)((int)pdVar21 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar21 + 4)" (( "(") (binary_expression "(int)pdVar21 + 4" (cast_expression "(int)pdVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar21")) (+ "+") (number_literal "4")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((int)pdVar11 + 4)" (* "*") (cast_expression "(undefined4 *)((int)pdVar11 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar11 + 4)" (( "(") (binary_expression "(int)pdVar11 + 4" (cast_expression "(int)pdVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar11")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(pdVar21 + 1) = uVar28;" (assignment_expression "*(undefined4 *)(pdVar21 + 1) = uVar28" (pointer_expression "*(undefined4 *)(pdVar21 + 1)" (* "*") (cast_expression "(undefined4 *)(pdVar21 + 1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar21 + 1)" (( "(") (binary_expression "pdVar21 + 1" (identifier "pdVar21") (+ "+") (number_literal "1")) () ")")))) (= "=") (identifier "uVar28")) (; ";")) (expression_statement "*(undefined4 *)pdVar21 = uVar27;" (assignment_expression "*(undefined4 *)pdVar21 = uVar27" (pointer_expression "*(undefined4 *)pdVar21" (* "*") (cast_expression "(undefined4 *)pdVar21" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pdVar21"))) (= "=") (identifier "uVar27")) (; ";")) (expression_statement "*(undefined4 *)((int)pdVar21 + 0xc) = uVar26;" (assignment_expression "*(undefined4 *)((int)pdVar21 + 0xc) = uVar26" (pointer_expression "*(undefined4 *)((int)pdVar21 + 0xc)" (* "*") (cast_expression "(undefined4 *)((int)pdVar21 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar21 + 0xc)" (( "(") (binary_expression "(int)pdVar21 + 0xc" (cast_expression "(int)pdVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar21")) (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "uVar26")) (; ";")) (expression_statement "pdVar7 = pdVar21 + 2;" (assignment_expression "pdVar7 = pdVar21 + 2" (identifier "pdVar7") (= "=") (binary_expression "pdVar21 + 2" (identifier "pdVar21") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pdVar8 != pdStack_e8 + 9)" (( "(") (binary_expression "pdVar8 != pdStack_e8 + 9" (identifier "pdVar8") (!= "!=") (binary_expression "pdStack_e8 + 9" (identifier "pdStack_e8") (+ "+") (number_literal "9"))) () ")")) (; ";")) (expression_statement "iVar32 = iVar32 + 0x28;" (assignment_expression "iVar32 = iVar32 + 0x28" (identifier "iVar32") (= "=") (binary_expression "iVar32 + 0x28" (identifier "iVar32") (+ "+") (number_literal "0x28"))) (; ";")) (expression_statement "uVar26 = *(undefined4 *)pdVar8;" (assignment_expression "uVar26 = *(undefined4 *)pdVar8" (identifier "uVar26") (= "=") (pointer_expression "*(undefined4 *)pdVar8" (* "*") (cast_expression "(undefined4 *)pdVar8" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pdVar8")))) (; ";")) (expression_statement "pdVar7 = pdVar6 + iVar29 * 5 + 5;" (assignment_expression "pdVar7 = pdVar6 + iVar29 * 5 + 5" (identifier "pdVar7") (= "=") (binary_expression "pdVar6 + iVar29 * 5 + 5" (binary_expression "pdVar6 + iVar29 * 5" (identifier "pdVar6") (+ "+") (binary_expression "iVar29 * 5" (identifier "iVar29") (* "*") (number_literal "5"))) (+ "+") (number_literal "5"))) (; ";")) (expression_statement "*(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14);" (assignment_expression "*(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14)" (pointer_expression "*(undefined4 *)((int)pdVar21 + 0x14)" (* "*") (cast_expression "(undefined4 *)((int)pdVar21 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar21 + 0x14)" (( "(") (binary_expression "(int)pdVar21 + 0x14" (cast_expression "(int)pdVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar21")) (+ "+") (number_literal "0x14")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((int)pdVar11 + 0x14)" (* "*") (cast_expression "(undefined4 *)((int)pdVar11 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar11 + 0x14)" (( "(") (binary_expression "(int)pdVar11 + 0x14" (cast_expression "(int)pdVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar11")) (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(pdVar21 + 2) = uVar26;" (assignment_expression "*(undefined4 *)(pdVar21 + 2) = uVar26" (pointer_expression "*(undefined4 *)(pdVar21 + 2)" (* "*") (cast_expression "(undefined4 *)(pdVar21 + 2)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar21 + 2)" (( "(") (binary_expression "pdVar21 + 2" (identifier "pdVar21") (+ "+") (number_literal "2")) () ")")))) (= "=") (identifier "uVar26")) (; ";")) (expression_statement "iVar29 = iVar29 + 1;" (assignment_expression "iVar29 = iVar29 + 1" (identifier "iVar29") (= "=") (binary_expression "iVar29 + 1" (identifier "iVar29") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "iStack_188 = 1;" (assignment_expression "iStack_188 = 1" (identifier "iStack_188") (= "=") (number_literal "1")) (; ";")) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" (identifier "bVar2") (= "=") (true "true")) (; ";")) (expression_statement "bVar1 = iVar29 < 2;" (assignment_expression "bVar1 = iVar29 < 2" (identifier "bVar1") (= "=") (binary_expression "iVar29 < 2" (identifier "iVar29") (< "<") (number_literal "2"))) (; ";")) (expression_statement "*(undefined4 *)((int)pdVar7 + 0x14) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar7 + 0x14) = 0" (pointer_expression "*(undefined4 *)((int)pdVar7 + 0x14)" (* "*") (cast_expression "(undefined4 *)((int)pdVar7 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar7 + 0x14)" (( "(") (binary_expression "(int)pdVar7 + 0x14" (cast_expression "(int)pdVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar7")) (+ "+") (number_literal "0x14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (bVar1) goto LAB_000a6124;" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (goto_statement "goto LAB_000a6124;" (goto "goto") (statement_identifier "LAB_000a6124") (; ";"))) (labeled_statement "LAB_000a4fe8:\n        dVar61 = *(double *)(iVar18 + 0x13f8);" (statement_identifier "LAB_000a4fe8") (: ":") (expression_statement "dVar61 = *(double *)(iVar18 + 0x13f8);" (assignment_expression "dVar61 = *(double *)(iVar18 + 0x13f8)" (identifier "dVar61") (= "=") (pointer_expression "*(double *)(iVar18 + 0x13f8)" (* "*") (cast_expression "(double *)(iVar18 + 0x13f8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x13f8)" (( "(") (binary_expression "iVar18 + 0x13f8" (identifier "iVar18") (+ "+") (number_literal "0x13f8")) () ")"))))) (; ";"))) (expression_statement "dStack_260 = pdVar6[5] - *pdVar6;" (assignment_expression "dStack_260 = pdVar6[5] - *pdVar6" (identifier "dStack_260") (= "=") (binary_expression "pdVar6[5] - *pdVar6" (subscript_expression "pdVar6[5]" (identifier "pdVar6") ([ "[") (number_literal "5") (] "]")) (- "-") (pointer_expression "*pdVar6" (* "*") (identifier "pdVar6")))) (; ";")) (expression_statement "dStack_258 = pdVar6[6] - pdVar6[1];" (assignment_expression "dStack_258 = pdVar6[6] - pdVar6[1]" (identifier "dStack_258") (= "=") (binary_expression "pdVar6[6] - pdVar6[1]" (subscript_expression "pdVar6[6]" (identifier "pdVar6") ([ "[") (number_literal "6") (] "]")) (- "-") (subscript_expression "pdVar6[1]" (identifier "pdVar6") ([ "[") (number_literal "1") (] "]")))) (; ";")) (if_statement "if ((dVar61 <= ABS(dStack_260)) || (dVar61 <= ABS(dStack_258))) {\n          iVar38 = 1;\n        }\n        else {\n          iVar38 = 1;\n          pdVar7 = pdVar6 + 10;\n          do {\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));\n        }" (if "if") (parenthesized_expression "((dVar61 <= ABS(dStack_260)) || (dVar61 <= ABS(dStack_258)))" (( "(") (binary_expression "(dVar61 <= ABS(dStack_260)) || (dVar61 <= ABS(dStack_258))" (parenthesized_expression "(dVar61 <= ABS(dStack_260))" (( "(") (binary_expression "dVar61 <= ABS(dStack_260)" (identifier "dVar61") (<= "<=") (call_expression "ABS(dStack_260)" (identifier "ABS") (argument_list "(dStack_260)" (( "(") (identifier "dStack_260") () ")")))) () ")")) (|| "||") (parenthesized_expression "(dVar61 <= ABS(dStack_258))" (( "(") (binary_expression "dVar61 <= ABS(dStack_258)" (identifier "dVar61") (<= "<=") (call_expression "ABS(dStack_258)" (identifier "ABS") (argument_list "(dStack_258)" (( "(") (identifier "dStack_258") () ")")))) () ")"))) () ")")) (compound_statement "{\n          iVar38 = 1;\n        }" ({ "{") (expression_statement "iVar38 = 1;" (assignment_expression "iVar38 = 1" (identifier "iVar38") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n          iVar38 = 1;\n          pdVar7 = pdVar6 + 10;\n          do {\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));\n        }" (else "else") (compound_statement "{\n          iVar38 = 1;\n          pdVar7 = pdVar6 + 10;\n          do {\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));\n        }" ({ "{") (expression_statement "iVar38 = 1;" (assignment_expression "iVar38 = 1" (identifier "iVar38") (= "=") (number_literal "1")) (; ";")) (expression_statement "pdVar7 = pdVar6 + 10;" (assignment_expression "pdVar7 = pdVar6 + 10" (identifier "pdVar7") (= "=") (binary_expression "pdVar6 + 10" (identifier "pdVar6") (+ "+") (number_literal "10"))) (; ";")) (do_statement "do {\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));" (do "do") (compound_statement "{\n            iVar38 = iVar38 + 1;\n            if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }\n            dStack_260 = *pdVar7 - *pdVar6;\n            dStack_258 = pdVar7[1] - pdVar6[1];\n          }" ({ "{") (expression_statement "iVar38 = iVar38 + 1;" (assignment_expression "iVar38 = iVar38 + 1" (identifier "iVar38") (= "=") (binary_expression "iVar38 + 1" (identifier "iVar38") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar38 == iVar29) {\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }" (if "if") (parenthesized_expression "(iVar38 == iVar29)" (( "(") (binary_expression "iVar38 == iVar29" (identifier "iVar38") (== "==") (identifier "iVar29")) () ")")) (compound_statement "{\n              iVar16 = *(int *)(param_2 + 0x244);\n              iVar38 = iVar29;\n              goto joined_r0x000a50f8;\n            }" ({ "{") (expression_statement "iVar16 = *(int *)(param_2 + 0x244);" (assignment_expression "iVar16 = *(int *)(param_2 + 0x244)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(param_2 + 0x244)" (* "*") (cast_expression "(int *)(param_2 + 0x244)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x244)" (( "(") (binary_expression "param_2 + 0x244" (identifier "param_2") (+ "+") (number_literal "0x244")) () ")"))))) (; ";")) (expression_statement "iVar38 = iVar29;" (assignment_expression "iVar38 = iVar29" (identifier "iVar38") (= "=") (identifier "iVar29")) (; ";")) (goto_statement "goto joined_r0x000a50f8;" (goto "goto") (statement_identifier "joined_r0x000a50f8") (; ";")) (} "}"))) (expression_statement "dStack_260 = *pdVar7 - *pdVar6;" (assignment_expression "dStack_260 = *pdVar7 - *pdVar6" (identifier "dStack_260") (= "=") (binary_expression "*pdVar7 - *pdVar6" (pointer_expression "*pdVar7" (* "*") (identifier "pdVar7")) (- "-") (pointer_expression "*pdVar6" (* "*") (identifier "pdVar6")))) (; ";")) (expression_statement "dStack_258 = pdVar7[1] - pdVar6[1];" (assignment_expression "dStack_258 = pdVar7[1] - pdVar6[1]" (identifier "dStack_258") (= "=") (binary_expression "pdVar7[1] - pdVar6[1]" (subscript_expression "pdVar7[1]" (identifier "pdVar7") ([ "[") (number_literal "1") (] "]")) (- "-") (subscript_expression "pdVar6[1]" (identifier "pdVar6") ([ "[") (number_literal "1") (] "]")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61))" (( "(") (binary_expression "(ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61)" (parenthesized_expression "(ABS(dStack_260) < dVar61)" (( "(") (binary_expression "ABS(dStack_260) < dVar61" (call_expression "ABS(dStack_260)" (identifier "ABS") (argument_list "(dStack_260)" (( "(") (identifier "dStack_260") () ")"))) (< "<") (identifier "dVar61")) () ")")) (&& "&&") (parenthesized_expression "(pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61)" (( "(") (comma_expression "pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61" (assignment_expression "pdVar7 = pdVar7 + 5" (identifier "pdVar7") (= "=") (binary_expression "pdVar7 + 5" (identifier "pdVar7") (+ "+") (number_literal "5"))) (, ",") (binary_expression "ABS(dStack_258) < dVar61" (call_expression "ABS(dStack_258)" (identifier "ABS") (argument_list "(dStack_258)" (( "(") (identifier "dStack_258") () ")"))) (< "<") (identifier "dVar61"))) () ")"))) () ")")) (; ";")) (} "}")))) (labeled_statement "LAB_000a5110:\n        uVar4 = iVar29 * 2;" (statement_identifier "LAB_000a5110") (: ":") (expression_statement "uVar4 = iVar29 * 2;" (assignment_expression "uVar4 = iVar29 * 2" (identifier "uVar4") (= "=") (binary_expression "iVar29 * 2" (identifier "iVar29") (* "*") (number_literal "2"))) (; ";"))) (expression_statement "pdVar7 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);" (assignment_expression "pdVar7 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10)" (identifier "pdVar7") (= "=") (cast_expression "(double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10)" (parenthesized_expression "(**(code **)(puVar36 + 0x3047fc))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x3047fc)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x3047fc)" (* "*") (cast_expression "(code **)(puVar36 + 0x3047fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3047fc)" (( "(") (binary_expression "puVar36 + 0x3047fc" (identifier "puVar36") (+ "+") (number_literal "0x3047fc")) () ")"))))) () ")")) (argument_list "(uVar4 + 0x618,0x10)" (( "(") (binary_expression "uVar4 + 0x618" (identifier "uVar4") (+ "+") (number_literal "0x618")) (, ",") (number_literal "0x10") () ")"))))) (; ";")) (expression_statement "pdVar8 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);" (assignment_expression "pdVar8 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10)" (identifier "pdVar8") (= "=") (cast_expression "(double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10)" (parenthesized_expression "(**(code **)(puVar36 + 0x3047fc))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x3047fc)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x3047fc)" (* "*") (cast_expression "(code **)(puVar36 + 0x3047fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3047fc)" (( "(") (binary_expression "puVar36 + 0x3047fc" (identifier "puVar36") (+ "+") (number_literal "0x3047fc")) () ")"))))) () ")")) (argument_list "(uVar4 + 0x618,0x10)" (( "(") (binary_expression "uVar4 + 0x618" (identifier "uVar4") (+ "+") (number_literal "0x618")) (, ",") (number_literal "0x10") () ")"))))) (; ";")) (if_statement "if (pdVar7 == (double *)0x0) {\n          if (pdVar8 != (double *)0x0) {\n            (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n          uVar26 = 0x1c93;\n          goto LAB_000a5724;\n        }" (if "if") (parenthesized_expression "(pdVar7 == (double *)0x0)" (( "(") (binary_expression "pdVar7 == (double *)0x0" (identifier "pdVar7") (== "==") (cast_expression "(double *)0x0" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          if (pdVar8 != (double *)0x0) {\n            (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n          }\nLAB_000a6cbc:\n          (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n          uVar26 = 0x1c93;\n          goto LAB_000a5724;\n        }" ({ "{") (if_statement "if (pdVar8 != (double *)0x0) {\n            (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n          }" (if "if") (parenthesized_expression "(pdVar8 != (double *)0x0)" (( "(") (binary_expression "pdVar8 != (double *)0x0" (identifier "pdVar8") (!= "!=") (cast_expression "(double *)0x0" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n          }" ({ "{") (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar8);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar8)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x3042b0)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x3042b0)" (* "*") (cast_expression "(code **)(puVar36 + 0x3042b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3042b0)" (( "(") (binary_expression "puVar36 + 0x3042b0" (identifier "puVar36") (+ "+") (number_literal "0x3042b0")) () ")"))))) () ")")) (argument_list "(pdVar8)" (( "(") (identifier "pdVar8") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_000a6cbc:\n          (**(code **)(puVar36 + 0x3042b0))(pdVar6);" (statement_identifier "LAB_000a6cbc") (: ":") (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar6);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar6)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x3042b0)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x3042b0)" (* "*") (cast_expression "(code **)(puVar36 + 0x3042b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3042b0)" (( "(") (binary_expression "puVar36 + 0x3042b0" (identifier "puVar36") (+ "+") (number_literal "0x3042b0")) () ")"))))) () ")")) (argument_list "(pdVar6)" (( "(") (identifier "pdVar6") () ")"))) (; ";"))) (expression_statement "uVar26 = 0x1c93;" (assignment_expression "uVar26 = 0x1c93" (identifier "uVar26") (= "=") (number_literal "0x1c93")) (; ";")) (goto_statement "goto LAB_000a5724;" (goto "goto") (statement_identifier "LAB_000a5724") (; ";")) (} "}"))) (if_statement "if (pdVar8 == (double *)0x0) {\n          (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n          goto LAB_000a6cbc;\n        }" (if "if") (parenthesized_expression "(pdVar8 == (double *)0x0)" (( "(") (binary_expression "pdVar8 == (double *)0x0" (identifier "pdVar8") (== "==") (cast_expression "(double *)0x0" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n          goto LAB_000a6cbc;\n        }" ({ "{") (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar7);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar7)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x3042b0)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x3042b0)" (* "*") (cast_expression "(code **)(puVar36 + 0x3042b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3042b0)" (( "(") (binary_expression "puVar36 + 0x3042b0" (identifier "puVar36") (+ "+") (number_literal "0x3042b0")) () ")"))))) () ")")) (argument_list "(pdVar7)" (( "(") (identifier "pdVar7") () ")"))) (; ";")) (goto_statement "goto LAB_000a6cbc;" (goto "goto") (statement_identifier "LAB_000a6cbc") (; ";")) (} "}"))) (if_statement "if (ABS(dStack_260) < *(double *)(iVar18 + 0x13f8)) {\n          dVar61 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else if (ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)) {\n          dVar52 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }" (if "if") (parenthesized_expression "(ABS(dStack_260) < *(double *)(iVar18 + 0x13f8))" (( "(") (binary_expression "ABS(dStack_260) < *(double *)(iVar18 + 0x13f8)" (call_expression "ABS(dStack_260)" (identifier "ABS") (argument_list "(dStack_260)" (( "(") (identifier "dStack_260") () ")"))) (< "<") (pointer_expression "*(double *)(iVar18 + 0x13f8)" (* "*") (cast_expression "(double *)(iVar18 + 0x13f8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x13f8)" (( "(") (binary_expression "iVar18 + 0x13f8" (identifier "iVar18") (+ "+") (number_literal "0x13f8")) () ")"))))) () ")")) (compound_statement "{\n          dVar61 = 0.0;\n          if (0.0 <= dStack_260) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }" ({ "{") (expression_statement "dVar61 = 0.0;" (assignment_expression "dVar61 = 0.0" (identifier "dVar61") (= "=") (number_literal "0.0")) (; ";")) (if_statement "if (0.0 <= dStack_260) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }" (if "if") (parenthesized_expression "(0.0 <= dStack_260)" (( "(") (binary_expression "0.0 <= dStack_260" (number_literal "0.0") (<= "<=") (identifier "dStack_260")) () ")")) (compound_statement "{\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_258 < 0.0) goto LAB_000a56e8;\n          }" ({ "{") (expression_statement "iVar16 = *(int *)(puVar36 + 0x303bd8);" (assignment_expression "iVar16 = *(int *)(puVar36 + 0x303bd8)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(puVar36 + 0x303bd8)" (* "*") (cast_expression "(int *)(puVar36 + 0x303bd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x303bd8)" (( "(") (binary_expression "puVar36 + 0x303bd8" (identifier "puVar36") (+ "+") (number_literal "0x303bd8")) () ")"))))) (; ";")) (if_statement "if (dStack_258 < 0.0) goto LAB_000a56e8;" (if "if") (parenthesized_expression "(dStack_258 < 0.0)" (( "(") (binary_expression "dStack_258 < 0.0" (identifier "dStack_258") (< "<") (number_literal "0.0")) () ")")) (goto_statement "goto LAB_000a56e8;" (goto "goto") (statement_identifier "LAB_000a56e8") (; ";"))) (} "}")) (else_clause "else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }" (else "else") (compound_statement "{\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }" ({ "{") (expression_statement "iVar16 = *(int *)(puVar36 + 0x303bd8);" (assignment_expression "iVar16 = *(int *)(puVar36 + 0x303bd8)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(puVar36 + 0x303bd8)" (* "*") (cast_expression "(int *)(puVar36 + 0x303bd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x303bd8)" (( "(") (binary_expression "puVar36 + 0x303bd8" (identifier "puVar36") (+ "+") (number_literal "0x303bd8")) () ")"))))) (; ";")) (if_statement "if (0.0 <= dStack_258) {\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }" (if "if") (parenthesized_expression "(0.0 <= dStack_258)" (( "(") (binary_expression "0.0 <= dStack_258" (number_literal "0.0") (<= "<=") (identifier "dStack_258")) () ")")) (compound_statement "{\nLAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }" ({ "{") (labeled_statement "LAB_000a56e8:\n              dVar52 = *(double *)(iVar16 + 0x47d0);" (statement_identifier "LAB_000a56e8") (: ":") (expression_statement "dVar52 = *(double *)(iVar16 + 0x47d0);" (assignment_expression "dVar52 = *(double *)(iVar16 + 0x47d0)" (identifier "dVar52") (= "=") (pointer_expression "*(double *)(iVar16 + 0x47d0)" (* "*") (cast_expression "(double *)(iVar16 + 0x47d0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x47d0)" (( "(") (binary_expression "iVar16 + 0x47d0" (identifier "iVar16") (+ "+") (number_literal "0x47d0")) () ")"))))) (; ";"))) (goto_statement "goto LAB_000a51b0;" (goto "goto") (statement_identifier "LAB_000a51b0") (; ";")) (} "}"))) (} "}")))) (expression_statement "dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);" (assignment_expression "dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" (identifier "dVar52") (= "=") (pointer_expression "*(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" (* "*") (cast_expression "(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" (( "(") (binary_expression "*(int *)(puVar36 + 0x303bd0) + 0x1a68" (pointer_expression "*(int *)(puVar36 + 0x303bd0)" (* "*") (cast_expression "(int *)(puVar36 + 0x303bd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x303bd0)" (( "(") (binary_expression "puVar36 + 0x303bd0" (identifier "puVar36") (+ "+") (number_literal "0x303bd0")) () ")")))) (+ "+") (number_literal "0x1a68")) () ")"))))) (; ";")) (} "}")) (else_clause "else if (ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)) {\n          dVar52 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }" (else "else") (if_statement "if (ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)) {\n          dVar52 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }\n        else {\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }" (if "if") (parenthesized_expression "(ABS(dStack_258) < *(double *)(iVar18 + 0x13f8))" (( "(") (binary_expression "ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)" (call_expression "ABS(dStack_258)" (identifier "ABS") (argument_list "(dStack_258)" (( "(") (identifier "dStack_258") () ")"))) (< "<") (pointer_expression "*(double *)(iVar18 + 0x13f8)" (* "*") (cast_expression "(double *)(iVar18 + 0x13f8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x13f8)" (( "(") (binary_expression "iVar18 + 0x13f8" (identifier "iVar18") (+ "+") (number_literal "0x13f8")) () ")"))))) () ")")) (compound_statement "{\n          dVar52 = 0.0;\n          if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n        }" ({ "{") (expression_statement "dVar52 = 0.0;" (assignment_expression "dVar52 = 0.0" (identifier "dVar52") (= "=") (number_literal "0.0")) (; ";")) (if_statement "if (0.0 <= dStack_258) {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }\n          else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }" (if "if") (parenthesized_expression "(0.0 <= dStack_258)" (( "(") (binary_expression "0.0 <= dStack_258" (number_literal "0.0") (<= "<=") (identifier "dStack_258")) () ")")) (compound_statement "{\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (dStack_260 < 0.0) goto LAB_000a684c;\n          }" ({ "{") (expression_statement "iVar16 = *(int *)(puVar36 + 0x303bd8);" (assignment_expression "iVar16 = *(int *)(puVar36 + 0x303bd8)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(puVar36 + 0x303bd8)" (* "*") (cast_expression "(int *)(puVar36 + 0x303bd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x303bd8)" (( "(") (binary_expression "puVar36 + 0x303bd8" (identifier "puVar36") (+ "+") (number_literal "0x303bd8")) () ")"))))) (; ";")) (if_statement "if (dStack_260 < 0.0) goto LAB_000a684c;" (if "if") (parenthesized_expression "(dStack_260 < 0.0)" (( "(") (binary_expression "dStack_260 < 0.0" (identifier "dStack_260") (< "<") (number_literal "0.0")) () ")")) (goto_statement "goto LAB_000a684c;" (goto "goto") (statement_identifier "LAB_000a684c") (; ";"))) (} "}")) (else_clause "else {\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }" (else "else") (compound_statement "{\n            iVar16 = *(int *)(puVar36 + 0x303bd8);\n            if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }\n          }" ({ "{") (expression_statement "iVar16 = *(int *)(puVar36 + 0x303bd8);" (assignment_expression "iVar16 = *(int *)(puVar36 + 0x303bd8)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(puVar36 + 0x303bd8)" (* "*") (cast_expression "(int *)(puVar36 + 0x303bd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x303bd8)" (( "(") (binary_expression "puVar36 + 0x303bd8" (identifier "puVar36") (+ "+") (number_literal "0x303bd8")) () ")"))))) (; ";")) (if_statement "if (0.0 <= dStack_260) {\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }" (if "if") (parenthesized_expression "(0.0 <= dStack_260)" (( "(") (binary_expression "0.0 <= dStack_260" (number_literal "0.0") (<= "<=") (identifier "dStack_260")) () ")")) (compound_statement "{\nLAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);\n              goto LAB_000a51b0;\n            }" ({ "{") (labeled_statement "LAB_000a684c:\n              dVar61 = *(double *)(iVar16 + 0x47d0);" (statement_identifier "LAB_000a684c") (: ":") (expression_statement "dVar61 = *(double *)(iVar16 + 0x47d0);" (assignment_expression "dVar61 = *(double *)(iVar16 + 0x47d0)" (identifier "dVar61") (= "=") (pointer_expression "*(double *)(iVar16 + 0x47d0)" (* "*") (cast_expression "(double *)(iVar16 + 0x47d0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x47d0)" (( "(") (binary_expression "iVar16 + 0x47d0" (identifier "iVar16") (+ "+") (number_literal "0x47d0")) () ")"))))) (; ";"))) (goto_statement "goto LAB_000a51b0;" (goto "goto") (statement_identifier "LAB_000a51b0") (; ";")) (} "}"))) (} "}")))) (expression_statement "dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);" (assignment_expression "dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" (identifier "dVar61") (= "=") (pointer_expression "*(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" (* "*") (cast_expression "(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" (( "(") (binary_expression "*(int *)(puVar36 + 0x303bd0) + 0x1a68" (pointer_expression "*(int *)(puVar36 + 0x303bd0)" (* "*") (cast_expression "(int *)(puVar36 + 0x303bd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x303bd0)" (( "(") (binary_expression "puVar36 + 0x303bd0" (identifier "puVar36") (+ "+") (number_literal "0x303bd0")) () ")")))) (+ "+") (number_literal "0x1a68")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }" (else "else") (compound_statement "{\n          dVar52 = dStack_258 / dStack_260;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;\n        }" ({ "{") (expression_statement "dVar52 = dStack_258 / dStack_260;" (assignment_expression "dVar52 = dStack_258 / dStack_260" (identifier "dVar52") (= "=") (binary_expression "dStack_258 / dStack_260" (identifier "dStack_258") (/ "/") (identifier "dStack_260"))) (; ";")) (expression_statement "dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;" (assignment_expression "dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52" (identifier "dVar61") (= "=") (binary_expression "*(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52" (pointer_expression "*(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78)" (* "*") (cast_expression "(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar36 + 0x303bd0) + 0x1a78)" (( "(") (binary_expression "*(int *)(puVar36 + 0x303bd0) + 0x1a78" (pointer_expression "*(int *)(puVar36 + 0x303bd0)" (* "*") (cast_expression "(int *)(puVar36 + 0x303bd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x303bd0)" (( "(") (binary_expression "puVar36 + 0x303bd0" (identifier "puVar36") (+ "+") (number_literal "0x303bd0")) () ")")))) (+ "+") (number_literal "0x1a78")) () ")")))) (/ "/") (identifier "dVar52"))) (; ";")) (} "}")))))) (labeled_statement "LAB_000a51b0:\n        dVar42 = (double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18);" (statement_identifier "LAB_000a51b0") (: ":") (expression_statement "dVar42 = (double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18);" (assignment_expression "dVar42 = (double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18)" (identifier "dVar42") (= "=") (cast_expression "(double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(puVar36 + 0x304288))(param_2 + 0x18)" (parenthesized_expression "(**(code **)(puVar36 + 0x304288))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x304288)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x304288)" (* "*") (cast_expression "(code **)(puVar36 + 0x304288)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x304288)" (( "(") (binary_expression "puVar36 + 0x304288" (identifier "puVar36") (+ "+") (number_literal "0x304288")) () ")"))))) () ")")) (argument_list "(param_2 + 0x18)" (( "(") (binary_expression "param_2 + 0x18" (identifier "param_2") (+ "+") (number_literal "0x18")) () ")"))))) (; ";"))) (expression_statement "iVar16 = *(int *)(param_2 + 0x24c) * *(int *)(param_2 + 0x24c);" (assignment_expression "iVar16 = *(int *)(param_2 + 0x24c) * *(int *)(param_2 + 0x24c)" (identifier "iVar16") (= "=") (binary_expression "*(int *)(param_2 + 0x24c) * *(int *)(param_2 + 0x24c)" (pointer_expression "*(int *)(param_2 + 0x24c)" (* "*") (cast_expression "(int *)(param_2 + 0x24c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x24c)" (( "(") (binary_expression "param_2 + 0x24c" (identifier "param_2") (+ "+") (number_literal "0x24c")) () ")")))) (* "*") (pointer_expression "*(int *)(param_2 + 0x24c)" (* "*") (cast_expression "(int *)(param_2 + 0x24c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x24c)" (( "(") (binary_expression "param_2 + 0x24c" (identifier "param_2") (+ "+") (number_literal "0x24c")) () ")")))))) (; ";")) (expression_statement "dVar42 = dVar42 * *(double *)(param_2 + 0x1b0) *\n                 *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400);" (assignment_expression "dVar42 = dVar42 * *(double *)(param_2 + 0x1b0) *\n                 *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400)" (identifier "dVar42") (= "=") (binary_expression "dVar42 * *(double *)(param_2 + 0x1b0) *\n                 *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400)" (binary_expression "dVar42 * *(double *)(param_2 + 0x1b0)" (identifier "dVar42") (* "*") (pointer_expression "*(double *)(param_2 + 0x1b0)" (* "*") (cast_expression "(double *)(param_2 + 0x1b0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x1b0)" (( "(") (binary_expression "param_2 + 0x1b0" (identifier "param_2") (+ "+") (number_literal "0x1b0")) () ")"))))) (* "*") (pointer_expression "*(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400)" (* "*") (cast_expression "(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar36 + 0x303bd0) + 0x1400)" (( "(") (binary_expression "*(int *)(puVar36 + 0x303bd0) + 0x1400" (pointer_expression "*(int *)(puVar36 + 0x303bd0)" (* "*") (cast_expression "(int *)(puVar36 + 0x303bd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x303bd0)" (( "(") (binary_expression "puVar36 + 0x303bd0" (identifier "puVar36") (+ "+") (number_literal "0x303bd0")) () ")")))) (+ "+") (number_literal "0x1400")) () ")")))))) (; ";")) (expression_statement "dVar46 = (double)iVar16;" (assignment_expression "dVar46 = (double)iVar16" (identifier "dVar46") (= "=") (cast_expression "(double)iVar16" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "iVar16"))) (; ";")) (if_statement "if (iVar16 < 0) {\n          dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418);\n        }" (if "if") (parenthesized_expression "(iVar16 < 0)" (( "(") (binary_expression "iVar16 < 0" (identifier "iVar16") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418);\n        }" ({ "{") (expression_statement "dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418);" (assignment_expression "dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418)" (identifier "dVar46") (= "=") (binary_expression "dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418)" (identifier "dVar46") (+ "+") (pointer_expression "*(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418)" (* "*") (cast_expression "(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar36 + 0x303bd0) + 0x1418)" (( "(") (binary_expression "*(int *)(puVar36 + 0x303bd0) + 0x1418" (pointer_expression "*(int *)(puVar36 + 0x303bd0)" (* "*") (cast_expression "(int *)(puVar36 + 0x303bd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x303bd0)" (( "(") (binary_expression "puVar36 + 0x303bd0" (identifier "puVar36") (+ "+") (number_literal "0x303bd0")) () ")")))) (+ "+") (number_literal "0x1418")) () ")")))))) (; ";")) (} "}"))) (expression_statement "dVar46 = dVar46 * dVar42 * dVar42;" (assignment_expression "dVar46 = dVar46 * dVar42 * dVar42" (identifier "dVar46") (= "=") (binary_expression "dVar46 * dVar42 * dVar42" (binary_expression "dVar46 * dVar42" (identifier "dVar46") (* "*") (identifier "dVar42")) (* "*") (identifier "dVar42"))) (; ";")) (if_statement "if (*(int *)(param_2 + 0x244) == 3) {\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            iVar16 = iVar29 + -2;\n            dVar50 = pdVar11[1];\n            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);\n            pdVar21 = pdVar6 + iVar16 * 5;\n            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            dVar50 = pdVar21[1];\n            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            goto LAB_000a5220;\n          }\n        }\n        else {\nLAB_000a5220:\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n        }" (if "if") (parenthesized_expression "(*(int *)(param_2 + 0x244) == 3)" (( "(") (binary_expression "*(int *)(param_2 + 0x244) == 3" (pointer_expression "*(int *)(param_2 + 0x244)" (* "*") (cast_expression "(int *)(param_2 + 0x244)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x244)" (( "(") (binary_expression "param_2 + 0x244" (identifier "param_2") (+ "+") (number_literal "0x244")) () ")")))) (== "==") (number_literal "3")) () ")")) (compound_statement "{\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n          if (!bVar2) {\n            if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            iVar16 = iVar29 + -2;\n            dVar50 = pdVar11[1];\n            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);\n            pdVar21 = pdVar6 + iVar16 * 5;\n            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            dVar50 = pdVar21[1];\n            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            goto LAB_000a5220;\n          }\n        }" ({ "{") (expression_statement "iVar16 = *(int *)(puVar36 + 0x303bd0);" (assignment_expression "iVar16 = *(int *)(puVar36 + 0x303bd0)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(puVar36 + 0x303bd0)" (* "*") (cast_expression "(int *)(puVar36 + 0x303bd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x303bd0)" (( "(") (binary_expression "puVar36 + 0x303bd0" (identifier "puVar36") (+ "+") (number_literal "0x303bd0")) () ")"))))) (; ";")) (if_statement "if (!bVar2) {\n            if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            iVar16 = iVar29 + -2;\n            dVar50 = pdVar11[1];\n            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);\n            pdVar21 = pdVar6 + iVar16 * 5;\n            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            dVar50 = pdVar21[1];\n            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            goto LAB_000a5220;\n          }" (if "if") (parenthesized_expression "(!bVar2)" (( "(") (unary_expression "!bVar2" (! "!") (identifier "bVar2")) () ")")) (compound_statement "{\n            if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            iVar16 = iVar29 + -2;\n            dVar50 = pdVar11[1];\n            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);\n            pdVar21 = pdVar6 + iVar16 * 5;\n            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }\n            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);\n            dVar50 = pdVar21[1];\n            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;\n            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;\n            goto LAB_000a5220;\n          }" ({ "{") (if_statement "if (bVar1) {\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }\n            else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n              dVar43 = 0.0;\n              if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }\n            }" ({ "{") (expression_statement "dVar43 = 0.0;" (assignment_expression "dVar43 = 0.0" (identifier "dVar43") (= "=") (number_literal "0.0")) (; ";")) (if_statement "if (iVar29 == 1) {\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }\n              else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }" (if "if") (parenthesized_expression "(iVar29 == 1)" (( "(") (binary_expression "iVar29 == 1" (identifier "iVar29") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                dVar53 = 0.0;\n                iVar16 = 1;\nLAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;\n              }" ({ "{") (expression_statement "dVar53 = 0.0;" (assignment_expression "dVar53 = 0.0" (identifier "dVar53") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "iVar16 = 1;" (assignment_expression "iVar16 = 1" (identifier "iVar16") (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_000a6998:\n                pdVar11 = pdVar6 + (iVar16 + -1) * 5;" (statement_identifier "LAB_000a6998") (: ":") (expression_statement "pdVar11 = pdVar6 + (iVar16 + -1) * 5;" (assignment_expression "pdVar11 = pdVar6 + (iVar16 + -1) * 5" (identifier "pdVar11") (= "=") (binary_expression "pdVar6 + (iVar16 + -1) * 5" (identifier "pdVar6") (+ "+") (binary_expression "(iVar16 + -1) * 5" (parenthesized_expression "(iVar16 + -1)" (( "(") (binary_expression "iVar16 + -1" (identifier "iVar16") (+ "+") (number_literal "-1")) () ")")) (* "*") (number_literal "5")))) (; ";"))) (} "}")) (else_clause "else {\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }" (else "else") (compound_statement "{\n                pdVar11 = pdVar6 + 5;\n                dVar53 = 0.0;\n              }" ({ "{") (expression_statement "pdVar11 = pdVar6 + 5;" (assignment_expression "pdVar11 = pdVar6 + 5" (identifier "pdVar11") (= "=") (binary_expression "pdVar6 + 5" (identifier "pdVar6") (+ "+") (number_literal "5"))) (; ";")) (expression_statement "dVar53 = 0.0;" (assignment_expression "dVar53 = 0.0" (identifier "dVar53") (= "=") (number_literal "0.0")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }" (else "else") (compound_statement "{\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar6 - pdVar6[5];\n              dVar43 = pdVar6[1] - pdVar6[6];\n              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }\n            }" ({ "{") (expression_statement "dVar64 = *(double *)(iVar18 + 0x13f8);" (assignment_expression "dVar64 = *(double *)(iVar18 + 0x13f8)" (identifier "dVar64") (= "=") (pointer_expression "*(double *)(iVar18 + 0x13f8)" (* "*") (cast_expression "(double *)(iVar18 + 0x13f8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x13f8)" (( "(") (binary_expression "iVar18 + 0x13f8" (identifier "iVar18") (+ "+") (number_literal "0x13f8")) () ")"))))) (; ";")) (expression_statement "dVar53 = *pdVar6 - pdVar6[5];" (assignment_expression "dVar53 = *pdVar6 - pdVar6[5]" (identifier "dVar53") (= "=") (binary_expression "*pdVar6 - pdVar6[5]" (pointer_expression "*pdVar6" (* "*") (identifier "pdVar6")) (- "-") (subscript_expression "pdVar6[5]" (identifier "pdVar6") ([ "[") (number_literal "5") (] "]")))) (; ";")) (expression_statement "dVar43 = pdVar6[1] - pdVar6[6];" (assignment_expression "dVar43 = pdVar6[1] - pdVar6[6]" (identifier "dVar43") (= "=") (binary_expression "pdVar6[1] - pdVar6[6]" (subscript_expression "pdVar6[1]" (identifier "pdVar6") ([ "[") (number_literal "1") (] "]")) (- "-") (subscript_expression "pdVar6[6]" (identifier "pdVar6") ([ "[") (number_literal "6") (] "]")))) (; ";")) (if_statement "if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {\n                pdVar11 = pdVar6 + 5;\n              }\n              else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }" (if "if") (parenthesized_expression "((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43)))" (( "(") (binary_expression "(dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))" (parenthesized_expression "(dVar64 <= ABS(dVar53))" (( "(") (binary_expression "dVar64 <= ABS(dVar53)" (identifier "dVar64") (<= "<=") (call_expression "ABS(dVar53)" (identifier "ABS") (argument_list "(dVar53)" (( "(") (identifier "dVar53") () ")")))) () ")")) (|| "||") (parenthesized_expression "(dVar64 <= ABS(dVar43))" (( "(") (binary_expression "dVar64 <= ABS(dVar43)" (identifier "dVar64") (<= "<=") (call_expression "ABS(dVar43)" (identifier "ABS") (argument_list "(dVar43)" (( "(") (identifier "dVar43") () ")")))) () ")"))) () ")")) (compound_statement "{\n                pdVar11 = pdVar6 + 5;\n              }" ({ "{") (expression_statement "pdVar11 = pdVar6 + 5;" (assignment_expression "pdVar11 = pdVar6 + 5" (identifier "pdVar11") (= "=") (binary_expression "pdVar6 + 5" (identifier "pdVar6") (+ "+") (number_literal "5"))) (; ";")) (} "}")) (else_clause "else {\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }" (else "else") (compound_statement "{\n                iVar33 = 1;\n                pdVar21 = pdVar6 + 10;\n                do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));\n              }" ({ "{") (expression_statement "iVar33 = 1;" (assignment_expression "iVar33 = 1" (identifier "iVar33") (= "=") (number_literal "1")) (; ";")) (expression_statement "pdVar21 = pdVar6 + 10;" (assignment_expression "pdVar21 = pdVar6 + 10" (identifier "pdVar21") (= "=") (binary_expression "pdVar6 + 10" (identifier "pdVar6") (+ "+") (number_literal "10"))) (; ";")) (do_statement "do {\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));" (do "do") (compound_statement "{\n                  pdVar11 = pdVar21;\n                  iVar33 = iVar33 + 1;\n                  iVar16 = iVar29;\n                  if (iVar33 == iVar29) goto LAB_000a6998;\n                  dVar53 = *pdVar6 - *pdVar11;\n                  dVar43 = pdVar6[1] - pdVar11[1];\n                }" ({ "{") (expression_statement "pdVar11 = pdVar21;" (assignment_expression "pdVar11 = pdVar21" (identifier "pdVar11") (= "=") (identifier "pdVar21")) (; ";")) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" (identifier "iVar33") (= "=") (binary_expression "iVar33 + 1" (identifier "iVar33") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar16 = iVar29;" (assignment_expression "iVar16 = iVar29" (identifier "iVar16") (= "=") (identifier "iVar29")) (; ";")) (if_statement "if (iVar33 == iVar29) goto LAB_000a6998;" (if "if") (parenthesized_expression "(iVar33 == iVar29)" (( "(") (binary_expression "iVar33 == iVar29" (identifier "iVar33") (== "==") (identifier "iVar29")) () ")")) (goto_statement "goto LAB_000a6998;" (goto "goto") (statement_identifier "LAB_000a6998") (; ";"))) (expression_statement "dVar53 = *pdVar6 - *pdVar11;" (assignment_expression "dVar53 = *pdVar6 - *pdVar11" (identifier "dVar53") (= "=") (binary_expression "*pdVar6 - *pdVar11" (pointer_expression "*pdVar6" (* "*") (identifier "pdVar6")) (- "-") (pointer_expression "*pdVar11" (* "*") (identifier "pdVar11")))) (; ";")) (expression_statement "dVar43 = pdVar6[1] - pdVar11[1];" (assignment_expression "dVar43 = pdVar6[1] - pdVar11[1]" (identifier "dVar43") (= "=") (binary_expression "pdVar6[1] - pdVar11[1]" (subscript_expression "pdVar6[1]" (identifier "pdVar6") ([ "[") (number_literal "1") (] "]")) (- "-") (subscript_expression "pdVar11[1]" (identifier "pdVar11") ([ "[") (number_literal "1") (] "]")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64))" (( "(") (binary_expression "(ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64)" (parenthesized_expression "(ABS(dVar53) < dVar64)" (( "(") (binary_expression "ABS(dVar53) < dVar64" (call_expression "ABS(dVar53)" (identifier "ABS") (argument_list "(dVar53)" (( "(") (identifier "dVar53") () ")"))) (< "<") (identifier "dVar64")) () ")")) (&& "&&") (parenthesized_expression "(pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64)" (( "(") (comma_expression "pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64" (assignment_expression "pdVar21 = pdVar11 + 5" (identifier "pdVar21") (= "=") (binary_expression "pdVar11 + 5" (identifier "pdVar11") (+ "+") (number_literal "5"))) (, ",") (binary_expression "ABS(dVar43) < dVar64" (call_expression "ABS(dVar43)" (identifier "ABS") (argument_list "(dVar43)" (( "(") (identifier "dVar43") () ")"))) (< "<") (identifier "dVar64"))) () ")"))) () ")")) (; ";")) (} "}")))) (} "}")))) (expression_statement "dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);" (assignment_expression "dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43)" (identifier "dVar64") (= "=") (cast_expression "(double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43)" (parenthesized_expression "(**(code **)(puVar36 + 0x304a08))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x304a08)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x304a08)" (* "*") (cast_expression "(code **)(puVar36 + 0x304a08)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x304a08)" (( "(") (binary_expression "puVar36 + 0x304a08" (identifier "puVar36") (+ "+") (number_literal "0x304a08")) () ")"))))) () ")")) (argument_list "(dVar53,dVar43)" (( "(") (identifier "dVar53") (, ",") (identifier "dVar43") () ")"))))) (; ";")) (expression_statement "iVar16 = iVar29 + -2;" (assignment_expression "iVar16 = iVar29 + -2" (identifier "iVar16") (= "=") (binary_expression "iVar29 + -2" (identifier "iVar29") (+ "+") (number_literal "-2"))) (; ";")) (expression_statement "dVar50 = pdVar11[1];" (assignment_expression "dVar50 = pdVar11[1]" (identifier "dVar50") (= "=") (subscript_expression "pdVar11[1]" (identifier "pdVar11") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);" (assignment_expression "pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28)" (identifier "pdVar31") (= "=") (cast_expression "(double *)((int)pdVar6 + iVar32 + -0x28)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar6 + iVar32 + -0x28)" (( "(") (binary_expression "(int)pdVar6 + iVar32 + -0x28" (binary_expression "(int)pdVar6 + iVar32" (cast_expression "(int)pdVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar6")) (+ "+") (identifier "iVar32")) (+ "+") (number_literal "-0x28")) () ")")))) (; ";")) (expression_statement "pdVar21 = pdVar6 + iVar16 * 5;" (assignment_expression "pdVar21 = pdVar6 + iVar16 * 5" (identifier "pdVar21") (= "=") (binary_expression "pdVar6 + iVar16 * 5" (identifier "pdVar6") (+ "+") (binary_expression "iVar16 * 5" (identifier "iVar16") (* "*") (number_literal "5")))) (; ";")) (expression_statement "*pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;" (assignment_expression "*pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64" (pointer_expression "*pdVar6" (* "*") (identifier "pdVar6")) (= "=") (binary_expression "*pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64" (pointer_expression "*pdVar11" (* "*") (identifier "pdVar11")) (+ "+") (binary_expression "(dVar53 * (dVar42 + dVar64)) / dVar64" (parenthesized_expression "(dVar53 * (dVar42 + dVar64))" (( "(") (binary_expression "dVar53 * (dVar42 + dVar64)" (identifier "dVar53") (* "*") (parenthesized_expression "(dVar42 + dVar64)" (( "(") (binary_expression "dVar42 + dVar64" (identifier "dVar42") (+ "+") (identifier "dVar64")) () ")"))) () ")")) (/ "/") (identifier "dVar64")))) (; ";")) (expression_statement "pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;" (assignment_expression "pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64" (subscript_expression "pdVar6[1]" (identifier "pdVar6") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64" (identifier "dVar50") (+ "+") (binary_expression "(dVar43 * (dVar42 + dVar64)) / dVar64" (parenthesized_expression "(dVar43 * (dVar42 + dVar64))" (( "(") (binary_expression "dVar43 * (dVar42 + dVar64)" (identifier "dVar43") (* "*") (parenthesized_expression "(dVar42 + dVar64)" (( "(") (binary_expression "dVar42 + dVar64" (identifier "dVar42") (+ "+") (identifier "dVar64")) () ")"))) () ")")) (/ "/") (identifier "dVar64")))) (; ";")) (if_statement "if (-1 < iVar16) {\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }" (if "if") (parenthesized_expression "(-1 < iVar16)" (( "(") (binary_expression "-1 < iVar16" (number_literal "-1") (< "<") (identifier "iVar16")) () ")")) (compound_statement "{\n              dVar64 = *(double *)(iVar18 + 0x13f8);\n              dVar53 = *pdVar31 - *pdVar21;\n              dVar43 = pdVar31[1] - pdVar21[1];\n              if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }\n            }" ({ "{") (expression_statement "dVar64 = *(double *)(iVar18 + 0x13f8);" (assignment_expression "dVar64 = *(double *)(iVar18 + 0x13f8)" (identifier "dVar64") (= "=") (pointer_expression "*(double *)(iVar18 + 0x13f8)" (* "*") (cast_expression "(double *)(iVar18 + 0x13f8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x13f8)" (( "(") (binary_expression "iVar18 + 0x13f8" (identifier "iVar18") (+ "+") (number_literal "0x13f8")) () ")"))))) (; ";")) (expression_statement "dVar53 = *pdVar31 - *pdVar21;" (assignment_expression "dVar53 = *pdVar31 - *pdVar21" (identifier "dVar53") (= "=") (binary_expression "*pdVar31 - *pdVar21" (pointer_expression "*pdVar31" (* "*") (identifier "pdVar31")) (- "-") (pointer_expression "*pdVar21" (* "*") (identifier "pdVar21")))) (; ";")) (expression_statement "dVar43 = pdVar31[1] - pdVar21[1];" (assignment_expression "dVar43 = pdVar31[1] - pdVar21[1]" (identifier "dVar43") (= "=") (binary_expression "pdVar31[1] - pdVar21[1]" (subscript_expression "pdVar31[1]" (identifier "pdVar31") ([ "[") (number_literal "1") (] "]")) (- "-") (subscript_expression "pdVar21[1]" (identifier "pdVar21") ([ "[") (number_literal "1") (] "]")))) (; ";")) (if_statement "if (ABS(dVar53) < dVar64) {\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }" (if "if") (parenthesized_expression "(ABS(dVar53) < dVar64)" (( "(") (binary_expression "ABS(dVar53) < dVar64" (call_expression "ABS(dVar53)" (identifier "ABS") (argument_list "(dVar53)" (( "(") (identifier "dVar53") () ")"))) (< "<") (identifier "dVar64")) () ")")) (compound_statement "{\n                pdVar11 = pdVar6 + (iVar29 + -3) * 5;\n                do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);\n              }" ({ "{") (expression_statement "pdVar11 = pdVar6 + (iVar29 + -3) * 5;" (assignment_expression "pdVar11 = pdVar6 + (iVar29 + -3) * 5" (identifier "pdVar11") (= "=") (binary_expression "pdVar6 + (iVar29 + -3) * 5" (identifier "pdVar6") (+ "+") (binary_expression "(iVar29 + -3) * 5" (parenthesized_expression "(iVar29 + -3)" (( "(") (binary_expression "iVar29 + -3" (identifier "iVar29") (+ "+") (number_literal "-3")) () ")")) (* "*") (number_literal "5")))) (; ";")) (do_statement "do {\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                } while (ABS(dVar53) < dVar64);" (do "do") (compound_statement "{\n                  pdVar21 = pdVar11;\n                  if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }\n                  iVar16 = iVar16 + -1;\n                  if (iVar16 == -1) break;\n                  dVar53 = *pdVar31 - *pdVar21;\n                  dVar43 = pdVar31[1] - pdVar21[1];\n                  pdVar11 = pdVar21 + -5;\n                }" ({ "{") (expression_statement "pdVar21 = pdVar11;" (assignment_expression "pdVar21 = pdVar11" (identifier "pdVar21") (= "=") (identifier "pdVar11")) (; ";")) (if_statement "if (dVar64 <= ABS(dVar43)) {\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }" (if "if") (parenthesized_expression "(dVar64 <= ABS(dVar43))" (( "(") (binary_expression "dVar64 <= ABS(dVar43)" (identifier "dVar64") (<= "<=") (call_expression "ABS(dVar43)" (identifier "ABS") (argument_list "(dVar43)" (( "(") (identifier "dVar43") () ")")))) () ")")) (compound_statement "{\n                    pdVar21 = pdVar6 + iVar16 * 5;\n                    break;\n                  }" ({ "{") (expression_statement "pdVar21 = pdVar6 + iVar16 * 5;" (assignment_expression "pdVar21 = pdVar6 + iVar16 * 5" (identifier "pdVar21") (= "=") (binary_expression "pdVar6 + iVar16 * 5" (identifier "pdVar6") (+ "+") (binary_expression "iVar16 * 5" (identifier "iVar16") (* "*") (number_literal "5")))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + -1" (identifier "iVar16") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (iVar16 == -1) break;" (if "if") (parenthesized_expression "(iVar16 == -1)" (( "(") (binary_expression "iVar16 == -1" (identifier "iVar16") (== "==") (number_literal "-1")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "dVar53 = *pdVar31 - *pdVar21;" (assignment_expression "dVar53 = *pdVar31 - *pdVar21" (identifier "dVar53") (= "=") (binary_expression "*pdVar31 - *pdVar21" (pointer_expression "*pdVar31" (* "*") (identifier "pdVar31")) (- "-") (pointer_expression "*pdVar21" (* "*") (identifier "pdVar21")))) (; ";")) (expression_statement "dVar43 = pdVar31[1] - pdVar21[1];" (assignment_expression "dVar43 = pdVar31[1] - pdVar21[1]" (identifier "dVar43") (= "=") (binary_expression "pdVar31[1] - pdVar21[1]" (subscript_expression "pdVar31[1]" (identifier "pdVar31") ([ "[") (number_literal "1") (] "]")) (- "-") (subscript_expression "pdVar21[1]" (identifier "pdVar21") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "pdVar11 = pdVar21 + -5;" (assignment_expression "pdVar11 = pdVar21 + -5" (identifier "pdVar11") (= "=") (binary_expression "pdVar21 + -5" (identifier "pdVar21") (+ "+") (number_literal "-5"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(ABS(dVar53) < dVar64)" (( "(") (binary_expression "ABS(dVar53) < dVar64" (call_expression "ABS(dVar53)" (identifier "ABS") (argument_list "(dVar53)" (( "(") (identifier "dVar53") () ")"))) (< "<") (identifier "dVar64")) () ")")) (; ";")) (} "}"))) (} "}"))) (expression_statement "dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);" (assignment_expression "dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43)" (identifier "dVar64") (= "=") (cast_expression "(double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43)" (parenthesized_expression "(**(code **)(puVar36 + 0x304a08))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x304a08)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x304a08)" (* "*") (cast_expression "(code **)(puVar36 + 0x304a08)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x304a08)" (( "(") (binary_expression "puVar36 + 0x304a08" (identifier "puVar36") (+ "+") (number_literal "0x304a08")) () ")"))))) () ")")) (argument_list "(dVar53,dVar43)" (( "(") (identifier "dVar53") (, ",") (identifier "dVar43") () ")"))))) (; ";")) (expression_statement "dVar50 = pdVar21[1];" (assignment_expression "dVar50 = pdVar21[1]" (identifier "dVar50") (= "=") (subscript_expression "pdVar21[1]" (identifier "pdVar21") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;" (assignment_expression "*pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64" (pointer_expression "*pdVar31" (* "*") (identifier "pdVar31")) (= "=") (binary_expression "*pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64" (pointer_expression "*pdVar21" (* "*") (identifier "pdVar21")) (+ "+") (binary_expression "(dVar53 * (dVar42 + dVar64)) / dVar64" (parenthesized_expression "(dVar53 * (dVar42 + dVar64))" (( "(") (binary_expression "dVar53 * (dVar42 + dVar64)" (identifier "dVar53") (* "*") (parenthesized_expression "(dVar42 + dVar64)" (( "(") (binary_expression "dVar42 + dVar64" (identifier "dVar42") (+ "+") (identifier "dVar64")) () ")"))) () ")")) (/ "/") (identifier "dVar64")))) (; ";")) (expression_statement "pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;" (assignment_expression "pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64" (subscript_expression "pdVar31[1]" (identifier "pdVar31") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64" (identifier "dVar50") (+ "+") (binary_expression "(dVar43 * (dVar42 + dVar64)) / dVar64" (parenthesized_expression "(dVar43 * (dVar42 + dVar64))" (( "(") (binary_expression "dVar43 * (dVar42 + dVar64)" (identifier "dVar43") (* "*") (parenthesized_expression "(dVar42 + dVar64)" (( "(") (binary_expression "dVar42 + dVar64" (identifier "dVar42") (+ "+") (identifier "dVar64")) () ")"))) () ")")) (/ "/") (identifier "dVar64")))) (; ";")) (goto_statement "goto LAB_000a5220;" (goto "goto") (statement_identifier "LAB_000a5220") (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_000a5220:\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n        }" (else "else") (compound_statement "{\nLAB_000a5220:\n          iVar16 = *(int *)(puVar36 + 0x303bd0);\n        }" ({ "{") (labeled_statement "LAB_000a5220:\n          iVar16 = *(int *)(puVar36 + 0x303bd0);" (statement_identifier "LAB_000a5220") (: ":") (expression_statement "iVar16 = *(int *)(puVar36 + 0x303bd0);" (assignment_expression "iVar16 = *(int *)(puVar36 + 0x303bd0)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(puVar36 + 0x303bd0)" (* "*") (cast_expression "(int *)(puVar36 + 0x303bd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x303bd0)" (( "(") (binary_expression "puVar36 + 0x303bd0" (identifier "puVar36") (+ "+") (number_literal "0x303bd0")) () ")"))))) (; ";"))) (} "}")))) (expression_statement "dVar43 = dVar42 * dVar42;" (assignment_expression "dVar43 = dVar42 * dVar42" (identifier "dVar43") (= "=") (binary_expression "dVar42 * dVar42" (identifier "dVar42") (* "*") (identifier "dVar42"))) (; ";")) (expression_statement "dVar53 = dVar43 / (dVar61 * dVar61 + *(double *)(iVar16 + 0x1438));" (assignment_expression "dVar53 = dVar43 / (dVar61 * dVar61 + *(double *)(iVar16 + 0x1438))" (identifier "dVar53") (= "=") (binary_expression "dVar43 / (dVar61 * dVar61 + *(double *)(iVar16 + 0x1438))" (identifier "dVar43") (/ "/") (parenthesized_expression "(dVar61 * dVar61 + *(double *)(iVar16 + 0x1438))" (( "(") (binary_expression "dVar61 * dVar61 + *(double *)(iVar16 + 0x1438)" (binary_expression "dVar61 * dVar61" (identifier "dVar61") (* "*") (identifier "dVar61")) (+ "+") (pointer_expression "*(double *)(iVar16 + 0x1438)" (* "*") (cast_expression "(double *)(iVar16 + 0x1438)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x1438)" (( "(") (binary_expression "iVar16 + 0x1438" (identifier "iVar16") (+ "+") (number_literal "0x1438")) () ")"))))) () ")")))) (; ";")) (expression_statement "dVar64 = SQRT(dVar53);" (assignment_expression "dVar64 = SQRT(dVar53)" (identifier "dVar64") (= "=") (call_expression "SQRT(dVar53)" (identifier "SQRT") (argument_list "(dVar53)" (( "(") (identifier "dVar53") () ")")))) (; ";")) (if_statement "if (dVar53 < 0.0) {\n          (**(code **)(puVar36 + 0x304770))();\n        }" (if "if") (parenthesized_expression "(dVar53 < 0.0)" (( "(") (binary_expression "dVar53 < 0.0" (identifier "dVar53") (< "<") (number_literal "0.0")) () ")")) (compound_statement "{\n          (**(code **)(puVar36 + 0x304770))();\n        }" ({ "{") (expression_statement "(**(code **)(puVar36 + 0x304770))();" (call_expression "(**(code **)(puVar36 + 0x304770))()" (parenthesized_expression "(**(code **)(puVar36 + 0x304770))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x304770)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x304770)" (* "*") (cast_expression "(code **)(puVar36 + 0x304770)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x304770)" (( "(") (binary_expression "puVar36 + 0x304770" (identifier "puVar36") (+ "+") (number_literal "0x304770")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "dVar61 = dVar61 * dVar64;" (assignment_expression "dVar61 = dVar61 * dVar64" (identifier "dVar61") (= "=") (binary_expression "dVar61 * dVar64" (identifier "dVar61") (* "*") (identifier "dVar64"))) (; ";")) (expression_statement "pdVar11 = pdVar6 + iVar38 * 5;" (assignment_expression "pdVar11 = pdVar6 + iVar38 * 5" (identifier "pdVar11") (= "=") (binary_expression "pdVar6 + iVar38 * 5" (identifier "pdVar6") (+ "+") (binary_expression "iVar38 * 5" (identifier "iVar38") (* "*") (number_literal "5")))) (; ";")) (expression_statement "dVar58 = *pdVar11;" (assignment_expression "dVar58 = *pdVar11" (identifier "dVar58") (= "=") (pointer_expression "*pdVar11" (* "*") (identifier "pdVar11"))) (; ";")) (expression_statement "dVar62 = pdVar11[1];" (assignment_expression "dVar62 = pdVar11[1]" (identifier "dVar62") (= "=") (subscript_expression "pdVar11[1]" (identifier "pdVar11") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "dVar57 = dVar61 + pdVar6[1];" (assignment_expression "dVar57 = dVar61 + pdVar6[1]" (identifier "dVar57") (= "=") (binary_expression "dVar61 + pdVar6[1]" (identifier "dVar61") (+ "+") (subscript_expression "pdVar6[1]" (identifier "pdVar6") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "dVar55 = pdVar6[1] - dVar61;" (assignment_expression "dVar55 = pdVar6[1] - dVar61" (identifier "dVar55") (= "=") (binary_expression "pdVar6[1] - dVar61" (subscript_expression "pdVar6[1]" (identifier "pdVar6") ([ "[") (number_literal "1") (] "]")) (- "-") (identifier "dVar61"))) (; ";")) (expression_statement "dVar53 = dVar64 + *pdVar6;" (assignment_expression "dVar53 = dVar64 + *pdVar6" (identifier "dVar53") (= "=") (binary_expression "dVar64 + *pdVar6" (identifier "dVar64") (+ "+") (pointer_expression "*pdVar6" (* "*") (identifier "pdVar6")))) (; ";")) (expression_statement "dStack_238 = dVar62 - dVar61;" (assignment_expression "dStack_238 = dVar62 - dVar61" (identifier "dStack_238") (= "=") (binary_expression "dVar62 - dVar61" (identifier "dVar62") (- "-") (identifier "dVar61"))) (; ";")) (expression_statement "dStack_240 = dVar58 - dVar64;" (assignment_expression "dStack_240 = dVar58 - dVar64" (identifier "dStack_240") (= "=") (binary_expression "dVar58 - dVar64" (identifier "dVar58") (- "-") (identifier "dVar64"))) (; ";")) (expression_statement "dVar56 = *pdVar6 - dVar64;" (assignment_expression "dVar56 = *pdVar6 - dVar64" (identifier "dVar56") (= "=") (binary_expression "*pdVar6 - dVar64" (pointer_expression "*pdVar6" (* "*") (identifier "pdVar6")) (- "-") (identifier "dVar64"))) (; ";")) (expression_statement "dVar51 = dVar56;" (assignment_expression "dVar51 = dVar56" (identifier "dVar51") (= "=") (identifier "dVar56")) (; ";")) (expression_statement "dVar50 = dVar57;" (assignment_expression "dVar50 = dVar57" (identifier "dVar50") (= "=") (identifier "dVar57")) (; ";")) (expression_statement "dStack_250 = dVar64 + dVar58;" (assignment_expression "dStack_250 = dVar64 + dVar58" (identifier "dStack_250") (= "=") (binary_expression "dVar64 + dVar58" (identifier "dVar64") (+ "+") (identifier "dVar58"))) (; ";")) (expression_statement "dStack_248 = dVar61 + dVar62;" (assignment_expression "dStack_248 = dVar61 + dVar62" (identifier "dStack_248") (= "=") (binary_expression "dVar61 + dVar62" (identifier "dVar61") (+ "+") (identifier "dVar62"))) (; ";")) (if_statement "if (0.0 < dVar64 * dStack_258 - dVar61 * dStack_260) {\n          dVar51 = dVar53;\n          dVar50 = dVar55;\n          dVar53 = dVar56;\n          dVar55 = dVar57;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar64 + dVar58;\n          dStack_238 = dVar61 + dVar62;\n        }" (if "if") (parenthesized_expression "(0.0 < dVar64 * dStack_258 - dVar61 * dStack_260)" (( "(") (binary_expression "0.0 < dVar64 * dStack_258 - dVar61 * dStack_260" (number_literal "0.0") (< "<") (binary_expression "dVar64 * dStack_258 - dVar61 * dStack_260" (binary_expression "dVar64 * dStack_258" (identifier "dVar64") (* "*") (identifier "dStack_258")) (- "-") (binary_expression "dVar61 * dStack_260" (identifier "dVar61") (* "*") (identifier "dStack_260")))) () ")")) (compound_statement "{\n          dVar51 = dVar53;\n          dVar50 = dVar55;\n          dVar53 = dVar56;\n          dVar55 = dVar57;\n          dStack_250 = dStack_240;\n          dStack_248 = dStack_238;\n          dStack_240 = dVar64 + dVar58;\n          dStack_238 = dVar61 + dVar62;\n        }" ({ "{") (expression_statement "dVar51 = dVar53;" (assignment_expression "dVar51 = dVar53" (identifier "dVar51") (= "=") (identifier "dVar53")) (; ";")) (expression_statement "dVar50 = dVar55;" (assignment_expression "dVar50 = dVar55" (identifier "dVar50") (= "=") (identifier "dVar55")) (; ";")) (expression_statement "dVar53 = dVar56;" (assignment_expression "dVar53 = dVar56" (identifier "dVar53") (= "=") (identifier "dVar56")) (; ";")) (expression_statement "dVar55 = dVar57;" (assignment_expression "dVar55 = dVar57" (identifier "dVar55") (= "=") (identifier "dVar57")) (; ";")) (expression_statement "dStack_250 = dStack_240;" (assignment_expression "dStack_250 = dStack_240" (identifier "dStack_250") (= "=") (identifier "dStack_240")) (; ";")) (expression_statement "dStack_248 = dStack_238;" (assignment_expression "dStack_248 = dStack_238" (identifier "dStack_248") (= "=") (identifier "dStack_238")) (; ";")) (expression_statement "dStack_240 = dVar64 + dVar58;" (assignment_expression "dStack_240 = dVar64 + dVar58" (identifier "dStack_240") (= "=") (binary_expression "dVar64 + dVar58" (identifier "dVar64") (+ "+") (identifier "dVar58"))) (; ";")) (expression_statement "dStack_238 = dVar61 + dVar62;" (assignment_expression "dStack_238 = dVar61 + dVar62" (identifier "dStack_238") (= "=") (binary_expression "dVar61 + dVar62" (identifier "dVar61") (+ "+") (identifier "dVar62"))) (; ";")) (} "}"))) (expression_statement "iVar32 = iVar38 + 1;" (assignment_expression "iVar32 = iVar38 + 1" (identifier "iVar32") (= "=") (binary_expression "iVar38 + 1" (identifier "iVar38") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pdVar8 = dVar51;" (assignment_expression "*pdVar8 = dVar51" (pointer_expression "*pdVar8" (* "*") (identifier "pdVar8")) (= "=") (identifier "dVar51")) (; ";")) (expression_statement "pdVar8[1] = dVar55;" (assignment_expression "pdVar8[1] = dVar55" (subscript_expression "pdVar8[1]" (identifier "pdVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "dVar55")) (; ";")) (expression_statement "*pdVar7 = dVar53;" (assignment_expression "*pdVar7 = dVar53" (pointer_expression "*pdVar7" (* "*") (identifier "pdVar7")) (= "=") (identifier "dVar53")) (; ";")) (expression_statement "pdVar7[1] = dVar50;" (assignment_expression "pdVar7[1] = dVar50" (subscript_expression "pdVar7[1]" (identifier "pdVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "dVar50")) (; ";")) (if_statement "if (iVar32 < iVar29) {\n          iVar20 = *(int *)(puVar36 + 0x303bd8);\n          iVar33 = 1;\n          iVar35 = 1;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78);\n          dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar4;\n          do {\n            dVar44 = pdVar11[6];\n            dVar47 = pdVar11[5];\n            dVar48 = dVar44 - dVar62;\n            dVar54 = dVar47 - dVar58;\n            dVar49 = dVar47 - dVar58;\n            dVar56 = dStack_238;\n            dVar57 = dStack_240;\n            dVar59 = dStack_248;\n            dVar63 = dStack_250;\n            if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar63;\n            dStack_248 = dVar59;\n            dStack_240 = dVar57;\n            dStack_238 = dVar56;\n            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;\n            pdVar11 = pdVar11 + 5;\n            iVar32 = iVar32 + 1;\n            dVar58 = pdVar6[iVar38 * 5];\n            dVar62 = (pdVar6 + iVar38 * 5)[1];\n          } while( true );\n        }" (if "if") (parenthesized_expression "(iVar32 < iVar29)" (( "(") (binary_expression "iVar32 < iVar29" (identifier "iVar32") (< "<") (identifier "iVar29")) () ")")) (compound_statement "{\n          iVar20 = *(int *)(puVar36 + 0x303bd8);\n          iVar33 = 1;\n          iVar35 = 1;\n          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78);\n          dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8);\n          uStack_22c = uVar4;\n          do {\n            dVar44 = pdVar11[6];\n            dVar47 = pdVar11[5];\n            dVar48 = dVar44 - dVar62;\n            dVar54 = dVar47 - dVar58;\n            dVar49 = dVar47 - dVar58;\n            dVar56 = dStack_238;\n            dVar57 = dStack_240;\n            dVar59 = dStack_248;\n            dVar63 = dStack_250;\n            if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar63;\n            dStack_248 = dVar59;\n            dStack_240 = dVar57;\n            dStack_238 = dVar56;\n            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;\n            pdVar11 = pdVar11 + 5;\n            iVar32 = iVar32 + 1;\n            dVar58 = pdVar6[iVar38 * 5];\n            dVar62 = (pdVar6 + iVar38 * 5)[1];\n          } while( true );\n        }" ({ "{") (expression_statement "iVar20 = *(int *)(puVar36 + 0x303bd8);" (assignment_expression "iVar20 = *(int *)(puVar36 + 0x303bd8)" (identifier "iVar20") (= "=") (pointer_expression "*(int *)(puVar36 + 0x303bd8)" (* "*") (cast_expression "(int *)(puVar36 + 0x303bd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x303bd8)" (( "(") (binary_expression "puVar36 + 0x303bd8" (identifier "puVar36") (+ "+") (number_literal "0x303bd8")) () ")"))))) (; ";")) (expression_statement "iVar33 = 1;" (assignment_expression "iVar33 = 1" (identifier "iVar33") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar35 = 1;" (assignment_expression "iVar35 = 1" (identifier "iVar35") (= "=") (number_literal "1")) (; ";")) (expression_statement "dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78);" (assignment_expression "dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78)" (identifier "dVar61") (= "=") (pointer_expression "*(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78)" (* "*") (cast_expression "(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar36 + 0x303bd0) + 0x1a78)" (( "(") (binary_expression "*(int *)(puVar36 + 0x303bd0) + 0x1a78" (pointer_expression "*(int *)(puVar36 + 0x303bd0)" (* "*") (cast_expression "(int *)(puVar36 + 0x303bd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x303bd0)" (( "(") (binary_expression "puVar36 + 0x303bd0" (identifier "puVar36") (+ "+") (number_literal "0x303bd0")) () ")")))) (+ "+") (number_literal "0x1a78")) () ")"))))) (; ";")) (expression_statement "dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8);" (assignment_expression "dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8)" (identifier "dVar64") (= "=") (pointer_expression "*(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8)" (* "*") (cast_expression "(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar36 + 0x303bd8) + 0x47d8)" (( "(") (binary_expression "*(int *)(puVar36 + 0x303bd8) + 0x47d8" (pointer_expression "*(int *)(puVar36 + 0x303bd8)" (* "*") (cast_expression "(int *)(puVar36 + 0x303bd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x303bd8)" (( "(") (binary_expression "puVar36 + 0x303bd8" (identifier "puVar36") (+ "+") (number_literal "0x303bd8")) () ")")))) (+ "+") (number_literal "0x47d8")) () ")"))))) (; ";")) (expression_statement "uStack_22c = uVar4;" (assignment_expression "uStack_22c = uVar4" (identifier "uStack_22c") (= "=") (identifier "uVar4")) (; ";")) (do_statement "do {\n            dVar44 = pdVar11[6];\n            dVar47 = pdVar11[5];\n            dVar48 = dVar44 - dVar62;\n            dVar54 = dVar47 - dVar58;\n            dVar49 = dVar47 - dVar58;\n            dVar56 = dStack_238;\n            dVar57 = dStack_240;\n            dVar59 = dStack_248;\n            dVar63 = dStack_250;\n            if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar63;\n            dStack_248 = dVar59;\n            dStack_240 = dVar57;\n            dStack_238 = dVar56;\n            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;\n            pdVar11 = pdVar11 + 5;\n            iVar32 = iVar32 + 1;\n            dVar58 = pdVar6[iVar38 * 5];\n            dVar62 = (pdVar6 + iVar38 * 5)[1];\n          } while( true );" (do "do") (compound_statement "{\n            dVar44 = pdVar11[6];\n            dVar47 = pdVar11[5];\n            dVar48 = dVar44 - dVar62;\n            dVar54 = dVar47 - dVar58;\n            dVar49 = dVar47 - dVar58;\n            dVar56 = dStack_238;\n            dVar57 = dStack_240;\n            dVar59 = dStack_248;\n            dVar63 = dStack_250;\n            if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }\njoined_r0x000a5a50:\n            dStack_250 = dVar63;\n            dStack_248 = dVar59;\n            dStack_240 = dVar57;\n            dStack_238 = dVar56;\n            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;\n            pdVar11 = pdVar11 + 5;\n            iVar32 = iVar32 + 1;\n            dVar58 = pdVar6[iVar38 * 5];\n            dVar62 = (pdVar6 + iVar38 * 5)[1];\n          }" ({ "{") (expression_statement "dVar44 = pdVar11[6];" (assignment_expression "dVar44 = pdVar11[6]" (identifier "dVar44") (= "=") (subscript_expression "pdVar11[6]" (identifier "pdVar11") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "dVar47 = pdVar11[5];" (assignment_expression "dVar47 = pdVar11[5]" (identifier "dVar47") (= "=") (subscript_expression "pdVar11[5]" (identifier "pdVar11") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "dVar48 = dVar44 - dVar62;" (assignment_expression "dVar48 = dVar44 - dVar62" (identifier "dVar48") (= "=") (binary_expression "dVar44 - dVar62" (identifier "dVar44") (- "-") (identifier "dVar62"))) (; ";")) (expression_statement "dVar54 = dVar47 - dVar58;" (assignment_expression "dVar54 = dVar47 - dVar58" (identifier "dVar54") (= "=") (binary_expression "dVar47 - dVar58" (identifier "dVar47") (- "-") (identifier "dVar58"))) (; ";")) (expression_statement "dVar49 = dVar47 - dVar58;" (assignment_expression "dVar49 = dVar47 - dVar58" (identifier "dVar49") (= "=") (binary_expression "dVar47 - dVar58" (identifier "dVar47") (- "-") (identifier "dVar58"))) (; ";")) (expression_statement "dVar56 = dStack_238;" (assignment_expression "dVar56 = dStack_238" (identifier "dVar56") (= "=") (identifier "dStack_238")) (; ";")) (expression_statement "dVar57 = dStack_240;" (assignment_expression "dVar57 = dStack_240" (identifier "dVar57") (= "=") (identifier "dStack_240")) (; ";")) (expression_statement "dVar59 = dStack_248;" (assignment_expression "dVar59 = dStack_248" (identifier "dVar59") (= "=") (identifier "dStack_248")) (; ";")) (expression_statement "dVar63 = dStack_250;" (assignment_expression "dVar63 = dStack_250" (identifier "dVar63") (= "=") (identifier "dStack_250")) (; ";")) (if_statement "if (*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }" (if "if") (parenthesized_expression "(*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62))" (( "(") (binary_expression "*(double *)(iVar20 + -0x2e38) <=\n                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)" (pointer_expression "*(double *)(iVar20 + -0x2e38)" (* "*") (cast_expression "(double *)(iVar20 + -0x2e38)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + -0x2e38)" (( "(") (binary_expression "iVar20 + -0x2e38" (identifier "iVar20") (+ "+") (number_literal "-0x2e38")) () ")")))) (<= "<=") (binary_expression "dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)" (binary_expression "dVar54 * dVar54" (identifier "dVar54") (* "*") (identifier "dVar54")) (+ "+") (binary_expression "(dVar44 - dVar62) * (dVar44 - dVar62)" (parenthesized_expression "(dVar44 - dVar62)" (( "(") (binary_expression "dVar44 - dVar62" (identifier "dVar44") (- "-") (identifier "dVar62")) () ")")) (* "*") (parenthesized_expression "(dVar44 - dVar62)" (( "(") (binary_expression "dVar44 - dVar62" (identifier "dVar44") (- "-") (identifier "dVar62")) () ")"))))) () ")")) (compound_statement "{\n              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }\njoined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;\n              dVar59 = SQRT(dVar57);\n              if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }\n              dVar56 = dVar56 * dVar59;\n              dStack_2a8 = dVar47 - dVar59;\n              dStack_2a0 = dVar44 - dVar56;\n              dStack_278 = dVar58 - dVar59;\n              dStack_270 = dVar62 - dVar56;\n              dStack_2b8 = dVar59 + dVar47;\n              dStack_2b0 = dVar56 + dVar44;\n              dStack_288 = dVar59 + dVar58;\n              dStack_280 = dVar56 + dVar62;\n              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }\n              dVar56 = dVar52 - dVar54;\n              dVar58 = dStack_250;\n              dVar62 = dStack_248;\n              dVar44 = dStack_238;\n              dVar47 = dStack_240;\n              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }\n              if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }\n              if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }\n              iVar9 = *(int *)(param_2 + 0x248);\n              dVar51 = dStack_278;\n              dVar50 = dStack_280;\n              dVar53 = dStack_288;\n              dVar55 = dStack_270;\n              iVar38 = iVar32;\n              dVar52 = dVar54;\n              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }\n            }" ({ "{") (if_statement "if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }\n              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }" (if "if") (parenthesized_expression "(ABS(dVar54) < *(double *)(iVar18 + 0x13f8))" (( "(") (binary_expression "ABS(dVar54) < *(double *)(iVar18 + 0x13f8)" (call_expression "ABS(dVar54)" (identifier "ABS") (argument_list "(dVar54)" (( "(") (identifier "dVar54") () ")"))) (< "<") (pointer_expression "*(double *)(iVar18 + 0x13f8)" (* "*") (cast_expression "(double *)(iVar18 + 0x13f8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x13f8)" (( "(") (binary_expression "iVar18 + 0x13f8" (identifier "iVar18") (+ "+") (number_literal "0x13f8")) () ")"))))) () ")")) (compound_statement "{\n                dVar56 = 0.0;\n                dVar57 = dVar43;\n                if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }\n                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);\n              }" ({ "{") (expression_statement "dVar56 = 0.0;" (assignment_expression "dVar56 = 0.0" (identifier "dVar56") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "dVar57 = dVar43;" (assignment_expression "dVar57 = dVar43" (identifier "dVar57") (= "=") (identifier "dVar43")) (; ";")) (if_statement "if (0.0 <= dVar54) {\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }\n                else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }" (if "if") (parenthesized_expression "(0.0 <= dVar54)" (( "(") (binary_expression "0.0 <= dVar54" (number_literal "0.0") (<= "<=") (identifier "dVar54")) () ")")) (compound_statement "{\n                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;\n                }" ({ "{") (if_statement "if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;" (if "if") (parenthesized_expression "(0.0 <= dVar44 - dVar62)" (( "(") (binary_expression "0.0 <= dVar44 - dVar62" (number_literal "0.0") (<= "<=") (binary_expression "dVar44 - dVar62" (identifier "dVar44") (- "-") (identifier "dVar62"))) () ")")) (goto_statement "goto LAB_000a53e0;" (goto "goto") (statement_identifier "LAB_000a53e0") (; ";"))) (} "}")) (else_clause "else if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }" (else "else") (if_statement "if (dVar44 - dVar62 < 0.0) {\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }" (if "if") (parenthesized_expression "(dVar44 - dVar62 < 0.0)" (( "(") (binary_expression "dVar44 - dVar62 < 0.0" (binary_expression "dVar44 - dVar62" (identifier "dVar44") (- "-") (identifier "dVar62")) (< "<") (number_literal "0.0")) () ")")) (compound_statement "{\nLAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n                  goto joined_r0x000a568c;\n                }" ({ "{") (labeled_statement "LAB_000a53e0:\n                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);" (statement_identifier "LAB_000a53e0") (: ":") (expression_statement "dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);" (assignment_expression "dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" (identifier "dVar54") (= "=") (pointer_expression "*(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" (* "*") (cast_expression "(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" (( "(") (binary_expression "*(int *)(puVar36 + 0x303bd0) + 0x1a68" (pointer_expression "*(int *)(puVar36 + 0x303bd0)" (* "*") (cast_expression "(int *)(puVar36 + 0x303bd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x303bd0)" (( "(") (binary_expression "puVar36 + 0x303bd0" (identifier "puVar36") (+ "+") (number_literal "0x303bd0")) () ")")))) (+ "+") (number_literal "0x1a68")) () ")"))))) (; ";"))) (goto_statement "goto joined_r0x000a568c;" (goto "goto") (statement_identifier "joined_r0x000a568c") (; ";")) (} "}"))))) (expression_statement "dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);" (assignment_expression "dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0)" (identifier "dVar54") (= "=") (pointer_expression "*(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0)" (* "*") (cast_expression "(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar36 + 0x303bd8) + 0x47d0)" (( "(") (binary_expression "*(int *)(puVar36 + 0x303bd8) + 0x47d0" (pointer_expression "*(int *)(puVar36 + 0x303bd8)" (* "*") (cast_expression "(int *)(puVar36 + 0x303bd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x303bd8)" (( "(") (binary_expression "puVar36 + 0x303bd8" (identifier "puVar36") (+ "+") (number_literal "0x303bd8")) () ")")))) (+ "+") (number_literal "0x47d0")) () ")"))))) (; ";")) (} "}")) (else_clause "else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }" (else "else") (if_statement "if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }\n              else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }" (if "if") (parenthesized_expression "(ABS(dVar48) < *(double *)(iVar18 + 0x13f8))" (( "(") (binary_expression "ABS(dVar48) < *(double *)(iVar18 + 0x13f8)" (call_expression "ABS(dVar48)" (identifier "ABS") (argument_list "(dVar48)" (( "(") (identifier "dVar48") () ")"))) (< "<") (pointer_expression "*(double *)(iVar18 + 0x13f8)" (* "*") (cast_expression "(double *)(iVar18 + 0x13f8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x13f8)" (( "(") (binary_expression "iVar18 + 0x13f8" (identifier "iVar18") (+ "+") (number_literal "0x13f8")) () ")"))))) () ")")) (compound_statement "{\n                dVar54 = 0.0;\n                dVar57 = dVar43 / dVar64;\n                if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }\n                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);\n              }" ({ "{") (expression_statement "dVar54 = 0.0;" (assignment_expression "dVar54 = 0.0" (identifier "dVar54") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "dVar57 = dVar43 / dVar64;" (assignment_expression "dVar57 = dVar43 / dVar64" (identifier "dVar57") (= "=") (binary_expression "dVar43 / dVar64" (identifier "dVar43") (/ "/") (identifier "dVar64"))) (; ";")) (if_statement "if (0.0 <= dVar44 - dVar62) {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }\n                else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }" (if "if") (parenthesized_expression "(0.0 <= dVar44 - dVar62)" (( "(") (binary_expression "0.0 <= dVar44 - dVar62" (number_literal "0.0") (<= "<=") (binary_expression "dVar44 - dVar62" (identifier "dVar44") (- "-") (identifier "dVar62"))) () ")")) (compound_statement "{\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;\n                }" ({ "{") (expression_statement "iVar9 = *(int *)(puVar36 + 0x303bd8);" (assignment_expression "iVar9 = *(int *)(puVar36 + 0x303bd8)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(puVar36 + 0x303bd8)" (* "*") (cast_expression "(int *)(puVar36 + 0x303bd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x303bd8)" (( "(") (binary_expression "puVar36 + 0x303bd8" (identifier "puVar36") (+ "+") (number_literal "0x303bd8")) () ")"))))) (; ";")) (if_statement "if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;" (if "if") (parenthesized_expression "(dVar47 - dVar58 < 0.0)" (( "(") (binary_expression "dVar47 - dVar58 < 0.0" (binary_expression "dVar47 - dVar58" (identifier "dVar47") (- "-") (identifier "dVar58")) (< "<") (number_literal "0.0")) () ")")) (goto_statement "goto LAB_000a5880;" (goto "goto") (statement_identifier "LAB_000a5880") (; ";"))) (} "}")) (else_clause "else {\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }" (else "else") (compound_statement "{\n                  iVar9 = *(int *)(puVar36 + 0x303bd8);\n                  if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }\n                }" ({ "{") (expression_statement "iVar9 = *(int *)(puVar36 + 0x303bd8);" (assignment_expression "iVar9 = *(int *)(puVar36 + 0x303bd8)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(puVar36 + 0x303bd8)" (* "*") (cast_expression "(int *)(puVar36 + 0x303bd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x303bd8)" (( "(") (binary_expression "puVar36 + 0x303bd8" (identifier "puVar36") (+ "+") (number_literal "0x303bd8")) () ")"))))) (; ";")) (if_statement "if (0.0 <= dVar47 - dVar58) {\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }" (if "if") (parenthesized_expression "(0.0 <= dVar47 - dVar58)" (( "(") (binary_expression "0.0 <= dVar47 - dVar58" (number_literal "0.0") (<= "<=") (binary_expression "dVar47 - dVar58" (identifier "dVar47") (- "-") (identifier "dVar58"))) () ")")) (compound_statement "{\nLAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);\n                    goto joined_r0x000a568c;\n                  }" ({ "{") (labeled_statement "LAB_000a5880:\n                    dVar56 = *(double *)(iVar9 + 0x47d0);" (statement_identifier "LAB_000a5880") (: ":") (expression_statement "dVar56 = *(double *)(iVar9 + 0x47d0);" (assignment_expression "dVar56 = *(double *)(iVar9 + 0x47d0)" (identifier "dVar56") (= "=") (pointer_expression "*(double *)(iVar9 + 0x47d0)" (* "*") (cast_expression "(double *)(iVar9 + 0x47d0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x47d0)" (( "(") (binary_expression "iVar9 + 0x47d0" (identifier "iVar9") (+ "+") (number_literal "0x47d0")) () ")"))))) (; ";"))) (goto_statement "goto joined_r0x000a568c;" (goto "goto") (statement_identifier "joined_r0x000a568c") (; ";")) (} "}"))) (} "}")))) (expression_statement "dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);" (assignment_expression "dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" (identifier "dVar56") (= "=") (pointer_expression "*(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" (* "*") (cast_expression "(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar36 + 0x303bd0) + 0x1a68)" (( "(") (binary_expression "*(int *)(puVar36 + 0x303bd0) + 0x1a68" (pointer_expression "*(int *)(puVar36 + 0x303bd0)" (* "*") (cast_expression "(int *)(puVar36 + 0x303bd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x303bd0)" (( "(") (binary_expression "puVar36 + 0x303bd0" (identifier "puVar36") (+ "+") (number_literal "0x303bd0")) () ")")))) (+ "+") (number_literal "0x1a68")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }" (else "else") (compound_statement "{\n                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);\n                dVar56 = dVar61 / dVar54;\n                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));\n              }" ({ "{") (expression_statement "dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);" (assignment_expression "dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58)" (identifier "dVar54") (= "=") (binary_expression "(dVar44 - dVar62) / (dVar47 - dVar58)" (parenthesized_expression "(dVar44 - dVar62)" (( "(") (binary_expression "dVar44 - dVar62" (identifier "dVar44") (- "-") (identifier "dVar62")) () ")")) (/ "/") (parenthesized_expression "(dVar47 - dVar58)" (( "(") (binary_expression "dVar47 - dVar58" (identifier "dVar47") (- "-") (identifier "dVar58")) () ")")))) (; ";")) (expression_statement "dVar56 = dVar61 / dVar54;" (assignment_expression "dVar56 = dVar61 / dVar54" (identifier "dVar56") (= "=") (binary_expression "dVar61 / dVar54" (identifier "dVar61") (/ "/") (identifier "dVar54"))) (; ";")) (expression_statement "dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));" (assignment_expression "dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438))" (identifier "dVar57") (= "=") (binary_expression "dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438))" (identifier "dVar43") (/ "/") (parenthesized_expression "(dVar56 * dVar56 + *(double *)(iVar16 + 0x1438))" (( "(") (binary_expression "dVar56 * dVar56 + *(double *)(iVar16 + 0x1438)" (binary_expression "dVar56 * dVar56" (identifier "dVar56") (* "*") (identifier "dVar56")) (+ "+") (pointer_expression "*(double *)(iVar16 + 0x1438)" (* "*") (cast_expression "(double *)(iVar16 + 0x1438)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x1438)" (( "(") (binary_expression "iVar16 + 0x1438" (identifier "iVar16") (+ "+") (number_literal "0x1438")) () ")"))))) () ")")))) (; ";")) (} "}")))))) (labeled_statement "joined_r0x000a568c:\n              pdVar21 = pdVar6 + iVar38 * 5;" (statement_identifier "joined_r0x000a568c") (: ":") (expression_statement "pdVar21 = pdVar6 + iVar38 * 5;" (assignment_expression "pdVar21 = pdVar6 + iVar38 * 5" (identifier "pdVar21") (= "=") (binary_expression "pdVar6 + iVar38 * 5" (identifier "pdVar6") (+ "+") (binary_expression "iVar38 * 5" (identifier "iVar38") (* "*") (number_literal "5")))) (; ";"))) (expression_statement "dVar59 = SQRT(dVar57);" (assignment_expression "dVar59 = SQRT(dVar57)" (identifier "dVar59") (= "=") (call_expression "SQRT(dVar57)" (identifier "SQRT") (argument_list "(dVar57)" (( "(") (identifier "dVar57") () ")")))) (; ";")) (if_statement "if (dVar57 < 0.0) {\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }" (if "if") (parenthesized_expression "(dVar57 < 0.0)" (( "(") (binary_expression "dVar57 < 0.0" (identifier "dVar57") (< "<") (number_literal "0.0")) () ")")) (compound_statement "{\n                (**(code **)(puVar36 + 0x304770))();\n                dVar58 = *pdVar21;\n                dVar62 = pdVar21[1];\n                dVar47 = pdVar11[5];\n                dVar44 = pdVar11[6];\n              }" ({ "{") (expression_statement "(**(code **)(puVar36 + 0x304770))();" (call_expression "(**(code **)(puVar36 + 0x304770))()" (parenthesized_expression "(**(code **)(puVar36 + 0x304770))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x304770)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x304770)" (* "*") (cast_expression "(code **)(puVar36 + 0x304770)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x304770)" (( "(") (binary_expression "puVar36 + 0x304770" (identifier "puVar36") (+ "+") (number_literal "0x304770")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "dVar58 = *pdVar21;" (assignment_expression "dVar58 = *pdVar21" (identifier "dVar58") (= "=") (pointer_expression "*pdVar21" (* "*") (identifier "pdVar21"))) (; ";")) (expression_statement "dVar62 = pdVar21[1];" (assignment_expression "dVar62 = pdVar21[1]" (identifier "dVar62") (= "=") (subscript_expression "pdVar21[1]" (identifier "pdVar21") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "dVar47 = pdVar11[5];" (assignment_expression "dVar47 = pdVar11[5]" (identifier "dVar47") (= "=") (subscript_expression "pdVar11[5]" (identifier "pdVar11") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "dVar44 = pdVar11[6];" (assignment_expression "dVar44 = pdVar11[6]" (identifier "dVar44") (= "=") (subscript_expression "pdVar11[6]" (identifier "pdVar11") ([ "[") (number_literal "6") (] "]"))) (; ";")) (} "}"))) (expression_statement "dVar56 = dVar56 * dVar59;" (assignment_expression "dVar56 = dVar56 * dVar59" (identifier "dVar56") (= "=") (binary_expression "dVar56 * dVar59" (identifier "dVar56") (* "*") (identifier "dVar59"))) (; ";")) (expression_statement "dStack_2a8 = dVar47 - dVar59;" (assignment_expression "dStack_2a8 = dVar47 - dVar59" (identifier "dStack_2a8") (= "=") (binary_expression "dVar47 - dVar59" (identifier "dVar47") (- "-") (identifier "dVar59"))) (; ";")) (expression_statement "dStack_2a0 = dVar44 - dVar56;" (assignment_expression "dStack_2a0 = dVar44 - dVar56" (identifier "dStack_2a0") (= "=") (binary_expression "dVar44 - dVar56" (identifier "dVar44") (- "-") (identifier "dVar56"))) (; ";")) (expression_statement "dStack_278 = dVar58 - dVar59;" (assignment_expression "dStack_278 = dVar58 - dVar59" (identifier "dStack_278") (= "=") (binary_expression "dVar58 - dVar59" (identifier "dVar58") (- "-") (identifier "dVar59"))) (; ";")) (expression_statement "dStack_270 = dVar62 - dVar56;" (assignment_expression "dStack_270 = dVar62 - dVar56" (identifier "dStack_270") (= "=") (binary_expression "dVar62 - dVar56" (identifier "dVar62") (- "-") (identifier "dVar56"))) (; ";")) (expression_statement "dStack_2b8 = dVar59 + dVar47;" (assignment_expression "dStack_2b8 = dVar59 + dVar47" (identifier "dStack_2b8") (= "=") (binary_expression "dVar59 + dVar47" (identifier "dVar59") (+ "+") (identifier "dVar47"))) (; ";")) (expression_statement "dStack_2b0 = dVar56 + dVar44;" (assignment_expression "dStack_2b0 = dVar56 + dVar44" (identifier "dStack_2b0") (= "=") (binary_expression "dVar56 + dVar44" (identifier "dVar56") (+ "+") (identifier "dVar44"))) (; ";")) (expression_statement "dStack_288 = dVar59 + dVar58;" (assignment_expression "dStack_288 = dVar59 + dVar58" (identifier "dStack_288") (= "=") (binary_expression "dVar59 + dVar58" (identifier "dVar59") (+ "+") (identifier "dVar58"))) (; ";")) (expression_statement "dStack_280 = dVar56 + dVar62;" (assignment_expression "dStack_280 = dVar56 + dVar62" (identifier "dStack_280") (= "=") (binary_expression "dVar56 + dVar62" (identifier "dVar56") (+ "+") (identifier "dVar62"))) (; ";")) (if_statement "if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }" (if "if") (parenthesized_expression "(0.0 < dVar48 * dVar59 - dVar49 * dVar56)" (( "(") (binary_expression "0.0 < dVar48 * dVar59 - dVar49 * dVar56" (number_literal "0.0") (< "<") (binary_expression "dVar48 * dVar59 - dVar49 * dVar56" (binary_expression "dVar48 * dVar59" (identifier "dVar48") (* "*") (identifier "dVar59")) (- "-") (binary_expression "dVar49 * dVar56" (identifier "dVar49") (* "*") (identifier "dVar56")))) () ")")) (compound_statement "{\n                dStack_2b8 = dStack_2a8;\n                dStack_2b0 = dStack_2a0;\n                dStack_2a8 = dVar59 + dVar47;\n                dStack_2a0 = dVar56 + dVar44;\n                dStack_288 = dStack_278;\n                dStack_280 = dStack_270;\n                dStack_278 = dVar59 + dVar58;\n                dStack_270 = dVar56 + dVar62;\n              }" ({ "{") (expression_statement "dStack_2b8 = dStack_2a8;" (assignment_expression "dStack_2b8 = dStack_2a8" (identifier "dStack_2b8") (= "=") (identifier "dStack_2a8")) (; ";")) (expression_statement "dStack_2b0 = dStack_2a0;" (assignment_expression "dStack_2b0 = dStack_2a0" (identifier "dStack_2b0") (= "=") (identifier "dStack_2a0")) (; ";")) (expression_statement "dStack_2a8 = dVar59 + dVar47;" (assignment_expression "dStack_2a8 = dVar59 + dVar47" (identifier "dStack_2a8") (= "=") (binary_expression "dVar59 + dVar47" (identifier "dVar59") (+ "+") (identifier "dVar47"))) (; ";")) (expression_statement "dStack_2a0 = dVar56 + dVar44;" (assignment_expression "dStack_2a0 = dVar56 + dVar44" (identifier "dStack_2a0") (= "=") (binary_expression "dVar56 + dVar44" (identifier "dVar56") (+ "+") (identifier "dVar44"))) (; ";")) (expression_statement "dStack_288 = dStack_278;" (assignment_expression "dStack_288 = dStack_278" (identifier "dStack_288") (= "=") (identifier "dStack_278")) (; ";")) (expression_statement "dStack_280 = dStack_270;" (assignment_expression "dStack_280 = dStack_270" (identifier "dStack_280") (= "=") (identifier "dStack_270")) (; ";")) (expression_statement "dStack_278 = dVar59 + dVar58;" (assignment_expression "dStack_278 = dVar59 + dVar58" (identifier "dStack_278") (= "=") (binary_expression "dVar59 + dVar58" (identifier "dVar59") (+ "+") (identifier "dVar58"))) (; ";")) (expression_statement "dStack_270 = dVar56 + dVar62;" (assignment_expression "dStack_270 = dVar56 + dVar62" (identifier "dStack_270") (= "=") (binary_expression "dVar56 + dVar62" (identifier "dVar56") (+ "+") (identifier "dVar62"))) (; ";")) (} "}"))) (expression_statement "dVar56 = dVar52 - dVar54;" (assignment_expression "dVar56 = dVar52 - dVar54" (identifier "dVar56") (= "=") (binary_expression "dVar52 - dVar54" (identifier "dVar52") (- "-") (identifier "dVar54"))) (; ";")) (expression_statement "dVar58 = dStack_250;" (assignment_expression "dVar58 = dStack_250" (identifier "dVar58") (= "=") (identifier "dStack_250")) (; ";")) (expression_statement "dVar62 = dStack_248;" (assignment_expression "dVar62 = dStack_248" (identifier "dVar62") (= "=") (identifier "dStack_248")) (; ";")) (expression_statement "dVar44 = dStack_238;" (assignment_expression "dVar44 = dStack_238" (identifier "dVar44") (= "=") (identifier "dStack_238")) (; ";")) (expression_statement "dVar47 = dStack_240;" (assignment_expression "dVar47 = dStack_240" (identifier "dVar47") (= "=") (identifier "dStack_240")) (; ";")) (if_statement "if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }" (if "if") (parenthesized_expression "(*(double *)(iVar18 + 0x13f8) <= ABS(dVar56))" (( "(") (binary_expression "*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)" (pointer_expression "*(double *)(iVar18 + 0x13f8)" (* "*") (cast_expression "(double *)(iVar18 + 0x13f8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x13f8)" (( "(") (binary_expression "iVar18 + 0x13f8" (identifier "iVar18") (+ "+") (number_literal "0x13f8")) () ")")))) (<= "<=") (call_expression "ABS(dVar56)" (identifier "ABS") (argument_list "(dVar56)" (( "(") (identifier "dVar56") () ")")))) () ")")) (compound_statement "{\n                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;\n                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;\n                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;\n                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;\n              }" ({ "{") (expression_statement "dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;" (assignment_expression "dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56" (identifier "dVar58") (= "=") (binary_expression "(((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56" (parenthesized_expression "(((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0)" (( "(") (binary_expression "((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0" (parenthesized_expression "((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8)" (( "(") (binary_expression "(dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8" (parenthesized_expression "(dVar53 * dVar52 - dVar50)" (( "(") (binary_expression "dVar53 * dVar52 - dVar50" (binary_expression "dVar53 * dVar52" (identifier "dVar53") (* "*") (identifier "dVar52")) (- "-") (identifier "dVar50")) () ")")) (- "-") (binary_expression "dVar54 * dStack_2b8" (identifier "dVar54") (* "*") (identifier "dStack_2b8"))) () ")")) (+ "+") (identifier "dStack_2b0")) () ")")) (/ "/") (identifier "dVar56"))) (; ";")) (expression_statement "dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;" (assignment_expression "dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56" (identifier "dVar47") (= "=") (binary_expression "(((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56" (parenthesized_expression "(((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0)" (( "(") (binary_expression "((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0" (parenthesized_expression "((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8)" (( "(") (binary_expression "(dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8" (parenthesized_expression "(dVar52 * dVar51 - dVar55)" (( "(") (binary_expression "dVar52 * dVar51 - dVar55" (binary_expression "dVar52 * dVar51" (identifier "dVar52") (* "*") (identifier "dVar51")) (- "-") (identifier "dVar55")) () ")")) (- "-") (binary_expression "dVar54 * dStack_2a8" (identifier "dVar54") (* "*") (identifier "dStack_2a8"))) () ")")) (+ "+") (identifier "dStack_2a0")) () ")")) (/ "/") (identifier "dVar56"))) (; ";")) (expression_statement "dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;" (assignment_expression "dVar62 = (dVar58 - dVar53) * dVar52 + dVar50" (identifier "dVar62") (= "=") (binary_expression "(dVar58 - dVar53) * dVar52 + dVar50" (binary_expression "(dVar58 - dVar53) * dVar52" (parenthesized_expression "(dVar58 - dVar53)" (( "(") (binary_expression "dVar58 - dVar53" (identifier "dVar58") (- "-") (identifier "dVar53")) () ")")) (* "*") (identifier "dVar52")) (+ "+") (identifier "dVar50"))) (; ";")) (expression_statement "dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;" (assignment_expression "dVar44 = (dVar47 - dVar51) * dVar52 + dVar55" (identifier "dVar44") (= "=") (binary_expression "(dVar47 - dVar51) * dVar52 + dVar55" (binary_expression "(dVar47 - dVar51) * dVar52" (parenthesized_expression "(dVar47 - dVar51)" (( "(") (binary_expression "dVar47 - dVar51" (identifier "dVar47") (- "-") (identifier "dVar51")) () ")")) (* "*") (identifier "dVar52")) (+ "+") (identifier "dVar55"))) (; ";")) (} "}"))) (if_statement "if ((int)uStack_22c <= iVar35 + 0x618) {\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }" (if "if") (parenthesized_expression "((int)uStack_22c <= iVar35 + 0x618)" (( "(") (binary_expression "(int)uStack_22c <= iVar35 + 0x618" (cast_expression "(int)uStack_22c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uStack_22c")) (<= "<=") (binary_expression "iVar35 + 0x618" (identifier "iVar35") (+ "+") (number_literal "0x618"))) () ")")) (compound_statement "{\n                if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }\n              }" ({ "{") (if_statement "if (uStack_22c < 0xfffff9e8) {\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }\n                else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }" (if "if") (parenthesized_expression "(uStack_22c < 0xfffff9e8)" (( "(") (binary_expression "uStack_22c < 0xfffff9e8" (identifier "uStack_22c") (< "<") (number_literal "0xfffff9e8")) () ")")) (compound_statement "{\n                  pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);\n                  uStack_22c = uStack_22c + 0x618;\n                }" ({ "{") (expression_statement "pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);" (assignment_expression "pdVar7 = (double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10)" (identifier "pdVar7") (= "=") (cast_expression "(double *)\n                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10)" (parenthesized_expression "(**(code **)(puVar36 + 0x304710))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x304710)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x304710)" (* "*") (cast_expression "(code **)(puVar36 + 0x304710)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x304710)" (( "(") (binary_expression "puVar36 + 0x304710" (identifier "puVar36") (+ "+") (number_literal "0x304710")) () ")"))))) () ")")) (argument_list "(pdVar7,uStack_22c + 0xc30,0x10)" (( "(") (identifier "pdVar7") (, ",") (binary_expression "uStack_22c + 0xc30" (identifier "uStack_22c") (+ "+") (number_literal "0xc30")) (, ",") (number_literal "0x10") () ")"))))) (; ";")) (expression_statement "uStack_22c = uStack_22c + 0x618;" (assignment_expression "uStack_22c = uStack_22c + 0x618" (identifier "uStack_22c") (= "=") (binary_expression "uStack_22c + 0x618" (identifier "uStack_22c") (+ "+") (number_literal "0x618"))) (; ";")) (} "}")) (else_clause "else {\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }" (else "else") (compound_statement "{\n                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                }" ({ "{") (expression_statement "pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);" (assignment_expression "pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7)" (identifier "pdVar7") (= "=") (cast_expression "(double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar7)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x3042b0)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x3042b0)" (* "*") (cast_expression "(code **)(puVar36 + 0x3042b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3042b0)" (( "(") (binary_expression "puVar36 + 0x3042b0" (identifier "puVar36") (+ "+") (number_literal "0x3042b0")) () ")"))))) () ")")) (argument_list "(pdVar7)" (( "(") (identifier "pdVar7") () ")"))))) (; ";")) (} "}")))) (} "}"))) (if_statement "if (iVar33 + 0x618 < (int)uVar4) {\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }\n              else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }" (if "if") (parenthesized_expression "(iVar33 + 0x618 < (int)uVar4)" (( "(") (binary_expression "iVar33 + 0x618 < (int)uVar4" (binary_expression "iVar33 + 0x618" (identifier "iVar33") (+ "+") (number_literal "0x618")) (< "<") (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4"))) () ")")) (compound_statement "{\n                if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }\n              }" ({ "{") (if_statement "if (pdVar7 == (double *)0x0) {\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }" (if "if") (parenthesized_expression "(pdVar7 == (double *)0x0)" (( "(") (binary_expression "pdVar7 == (double *)0x0" (identifier "pdVar7") (== "==") (cast_expression "(double *)0x0" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  goto LAB_000a5714;\n                }" ({ "{") (labeled_statement "LAB_000a5700:\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);" (statement_identifier "LAB_000a5700") (: ":") (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar8);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar8)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x3042b0)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x3042b0)" (* "*") (cast_expression "(code **)(puVar36 + 0x3042b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3042b0)" (( "(") (binary_expression "puVar36 + 0x3042b0" (identifier "puVar36") (+ "+") (number_literal "0x3042b0")) () ")"))))) () ")")) (argument_list "(pdVar8)" (( "(") (identifier "pdVar8") () ")"))) (; ";"))) (labeled_statement "LAB_000a5710:\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);" (statement_identifier "LAB_000a5710") (: ":") (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042b0);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042b0)" (identifier "pcVar37") (= "=") (pointer_expression "*(code **)(puVar36 + 0x3042b0)" (* "*") (cast_expression "(code **)(puVar36 + 0x3042b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3042b0)" (( "(") (binary_expression "puVar36 + 0x3042b0" (identifier "puVar36") (+ "+") (number_literal "0x3042b0")) () ")"))))) (; ";"))) (goto_statement "goto LAB_000a5714;" (goto "goto") (statement_identifier "LAB_000a5714") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }" (else "else") (compound_statement "{\n                if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }\n                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                uVar4 = uVar4 + 0x618;\n                if (pdVar7 == (double *)0x0) goto LAB_000a598c;\nLAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }\n              }" ({ "{") (if_statement "if (0xfffff9e7 < uVar4) {\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }" (if "if") (parenthesized_expression "(0xfffff9e7 < uVar4)" (( "(") (binary_expression "0xfffff9e7 < uVar4" (number_literal "0xfffff9e7") (< "<") (identifier "uVar4")) () ")")) (compound_statement "{\n                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;\nLAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a5714:\n                  (*pcVar37)(pdVar6);\n                  uVar26 = 0x1d17;\n                  goto LAB_000a5724;\n                }" ({ "{") (expression_statement "pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);" (assignment_expression "pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8)" (identifier "pdVar8") (= "=") (cast_expression "(double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar8)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x3042b0)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x3042b0)" (* "*") (cast_expression "(code **)(puVar36 + 0x3042b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3042b0)" (( "(") (binary_expression "puVar36 + 0x3042b0" (identifier "puVar36") (+ "+") (number_literal "0x3042b0")) () ")"))))) () ")")) (argument_list "(pdVar8)" (( "(") (identifier "pdVar8") () ")"))))) (; ";")) (if_statement "if (pdVar7 != (double *)0x0) goto LAB_000a5594;" (if "if") (parenthesized_expression "(pdVar7 != (double *)0x0)" (( "(") (binary_expression "pdVar7 != (double *)0x0" (identifier "pdVar7") (!= "!=") (cast_expression "(double *)0x0" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000a5594;" (goto "goto") (statement_identifier "LAB_000a5594") (; ";"))) (labeled_statement "LAB_000a598c:\n                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;" (statement_identifier "LAB_000a598c") (: ":") (if_statement "if (pdVar8 != (double *)0x0) goto LAB_000a5700;" (if "if") (parenthesized_expression "(pdVar8 != (double *)0x0)" (( "(") (binary_expression "pdVar8 != (double *)0x0" (identifier "pdVar8") (!= "!=") (cast_expression "(double *)0x0" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000a5700;" (goto "goto") (statement_identifier "LAB_000a5700") (; ";")))) (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042b0);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042b0)" (identifier "pcVar37") (= "=") (pointer_expression "*(code **)(puVar36 + 0x3042b0)" (* "*") (cast_expression "(code **)(puVar36 + 0x3042b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3042b0)" (( "(") (binary_expression "puVar36 + 0x3042b0" (identifier "puVar36") (+ "+") (number_literal "0x3042b0")) () ")"))))) (; ";")) (labeled_statement "LAB_000a5714:\n                  (*pcVar37)(pdVar6);" (statement_identifier "LAB_000a5714") (: ":") (expression_statement "(*pcVar37)(pdVar6);" (call_expression "(*pcVar37)(pdVar6)" (parenthesized_expression "(*pcVar37)" (( "(") (pointer_expression "*pcVar37" (* "*") (identifier "pcVar37")) () ")")) (argument_list "(pdVar6)" (( "(") (identifier "pdVar6") () ")"))) (; ";"))) (expression_statement "uVar26 = 0x1d17;" (assignment_expression "uVar26 = 0x1d17" (identifier "uVar26") (= "=") (number_literal "0x1d17")) (; ";")) (goto_statement "goto LAB_000a5724;" (goto "goto") (statement_identifier "LAB_000a5724") (; ";")) (} "}"))) (expression_statement "pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);" (assignment_expression "pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10)" (identifier "pdVar8") (= "=") (cast_expression "(double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10)" (parenthesized_expression "(**(code **)(puVar36 + 0x304710))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x304710)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x304710)" (* "*") (cast_expression "(code **)(puVar36 + 0x304710)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x304710)" (( "(") (binary_expression "puVar36 + 0x304710" (identifier "puVar36") (+ "+") (number_literal "0x304710")) () ")"))))) () ")")) (argument_list "(pdVar8,uVar4 + 0xc30,0x10)" (( "(") (identifier "pdVar8") (, ",") (binary_expression "uVar4 + 0xc30" (identifier "uVar4") (+ "+") (number_literal "0xc30")) (, ",") (number_literal "0x10") () ")"))))) (; ";")) (expression_statement "uVar4 = uVar4 + 0x618;" (assignment_expression "uVar4 = uVar4 + 0x618" (identifier "uVar4") (= "=") (binary_expression "uVar4 + 0x618" (identifier "uVar4") (+ "+") (number_literal "0x618"))) (; ";")) (if_statement "if (pdVar7 == (double *)0x0) goto LAB_000a598c;" (if "if") (parenthesized_expression "(pdVar7 == (double *)0x0)" (( "(") (binary_expression "pdVar7 == (double *)0x0" (identifier "pdVar7") (== "==") (cast_expression "(double *)0x0" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000a598c;" (goto "goto") (statement_identifier "LAB_000a598c") (; ";"))) (labeled_statement "LAB_000a5594:\n                if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }" (statement_identifier "LAB_000a5594") (: ":") (if_statement "if (pdVar8 == (double *)0x0) {\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }" (if "if") (parenthesized_expression "(pdVar8 == (double *)0x0)" (( "(") (binary_expression "pdVar8 == (double *)0x0" (identifier "pdVar8") (== "==") (cast_expression "(double *)0x0" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  goto LAB_000a5710;\n                }" ({ "{") (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar7);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar7)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x3042b0)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x3042b0)" (* "*") (cast_expression "(code **)(puVar36 + 0x3042b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3042b0)" (( "(") (binary_expression "puVar36 + 0x3042b0" (identifier "puVar36") (+ "+") (number_literal "0x3042b0")) () ")"))))) () ")")) (argument_list "(pdVar7)" (( "(") (identifier "pdVar7") () ")"))) (; ";")) (goto_statement "goto LAB_000a5710;" (goto "goto") (statement_identifier "LAB_000a5710") (; ";")) (} "}")))) (} "}")))) (expression_statement "iVar9 = *(int *)(param_2 + 0x248);" (assignment_expression "iVar9 = *(int *)(param_2 + 0x248)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(param_2 + 0x248)" (* "*") (cast_expression "(int *)(param_2 + 0x248)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x248)" (( "(") (binary_expression "param_2 + 0x248" (identifier "param_2") (+ "+") (number_literal "0x248")) () ")"))))) (; ";")) (expression_statement "dVar51 = dStack_278;" (assignment_expression "dVar51 = dStack_278" (identifier "dVar51") (= "=") (identifier "dStack_278")) (; ";")) (expression_statement "dVar50 = dStack_280;" (assignment_expression "dVar50 = dStack_280" (identifier "dVar50") (= "=") (identifier "dStack_280")) (; ";")) (expression_statement "dVar53 = dStack_288;" (assignment_expression "dVar53 = dStack_288" (identifier "dVar53") (= "=") (identifier "dStack_288")) (; ";")) (expression_statement "dVar55 = dStack_270;" (assignment_expression "dVar55 = dStack_270" (identifier "dVar55") (= "=") (identifier "dStack_270")) (; ";")) (expression_statement "iVar38 = iVar32;" (assignment_expression "iVar38 = iVar32" (identifier "iVar38") (= "=") (identifier "iVar32")) (; ";")) (expression_statement "dVar52 = dVar54;" (assignment_expression "dVar52 = dVar54" (identifier "dVar52") (= "=") (identifier "dVar54")) (; ";")) (if_statement "if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }\n              else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }" (if "if") (parenthesized_expression "(dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0)" (( "(") (binary_expression "dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0" (binary_expression "dVar49 * dStack_258 - dVar48 * dStack_260" (binary_expression "dVar49 * dStack_258" (identifier "dVar49") (* "*") (identifier "dStack_258")) (- "-") (binary_expression "dVar48 * dStack_260" (identifier "dVar48") (* "*") (identifier "dStack_260"))) (<= "<=") (number_literal "0.0")) () ")")) (compound_statement "{\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar35 + 1;\n                pdVar31 = pdVar7 + iVar35 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }\n                dVar58 = *pdVar21;\n                dVar57 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);\n                if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar52 = dVar52 - dVar56;\n                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar59 = SQRT(dVar62);\n                if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));\n                dVar59 = *(double *)(iVar15 + 0x1410);\n                if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }\n                if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }\n                if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }\n                pdVar21 = pdVar8 + iVar33 * 2;\n                *pdVar21 = dStack_240;\n                pdVar21[1] = dStack_238;\n                if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }\n                *pdVar8 = dStack_278;\n                pdVar8[1] = dStack_270;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = 1;\n                iVar35 = iVar9;\n                dVar52 = dVar54;\n              }" ({ "{") (if_statement "if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }" (if "if") (parenthesized_expression "(iVar9 != 2)" (( "(") (binary_expression "iVar9 != 2" (identifier "iVar9") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n                  if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }" ({ "{") (if_statement "if (iVar9 == 3) {\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }" (if "if") (parenthesized_expression "(iVar9 == 3)" (( "(") (binary_expression "iVar9 == 3" (identifier "iVar9") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n                    pdVar21 = pdVar7 + iVar35 * 2;\n                    pdVar8[iVar33 * 2] = dStack_240;\n                    (pdVar8 + iVar33 * 2)[1] = dStack_238;\n                    pdVar8[iVar33 * 2 + 2] = dStack_278;\n                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }" ({ "{") (expression_statement "pdVar21 = pdVar7 + iVar35 * 2;" (assignment_expression "pdVar21 = pdVar7 + iVar35 * 2" (identifier "pdVar21") (= "=") (binary_expression "pdVar7 + iVar35 * 2" (identifier "pdVar7") (+ "+") (binary_expression "iVar35 * 2" (identifier "iVar35") (* "*") (number_literal "2")))) (; ";")) (expression_statement "pdVar8[iVar33 * 2] = dStack_240;" (assignment_expression "pdVar8[iVar33 * 2] = dStack_240" (subscript_expression "pdVar8[iVar33 * 2]" (identifier "pdVar8") ([ "[") (binary_expression "iVar33 * 2" (identifier "iVar33") (* "*") (number_literal "2")) (] "]")) (= "=") (identifier "dStack_240")) (; ";")) (expression_statement "(pdVar8 + iVar33 * 2)[1] = dStack_238;" (assignment_expression "(pdVar8 + iVar33 * 2)[1] = dStack_238" (subscript_expression "(pdVar8 + iVar33 * 2)[1]" (parenthesized_expression "(pdVar8 + iVar33 * 2)" (( "(") (binary_expression "pdVar8 + iVar33 * 2" (identifier "pdVar8") (+ "+") (binary_expression "iVar33 * 2" (identifier "iVar33") (* "*") (number_literal "2"))) () ")")) ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "dStack_238")) (; ";")) (expression_statement "pdVar8[iVar33 * 2 + 2] = dStack_278;" (assignment_expression "pdVar8[iVar33 * 2 + 2] = dStack_278" (subscript_expression "pdVar8[iVar33 * 2 + 2]" (identifier "pdVar8") ([ "[") (binary_expression "iVar33 * 2 + 2" (binary_expression "iVar33 * 2" (identifier "iVar33") (* "*") (number_literal "2")) (+ "+") (number_literal "2")) (] "]")) (= "=") (identifier "dStack_278")) (; ";")) (expression_statement "(pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;" (assignment_expression "(pdVar8 + iVar33 * 2 + 2)[1] = dStack_270" (subscript_expression "(pdVar8 + iVar33 * 2 + 2)[1]" (parenthesized_expression "(pdVar8 + iVar33 * 2 + 2)" (( "(") (binary_expression "pdVar8 + iVar33 * 2 + 2" (binary_expression "pdVar8 + iVar33 * 2" (identifier "pdVar8") (+ "+") (binary_expression "iVar33 * 2" (identifier "iVar33") (* "*") (number_literal "2"))) (+ "+") (number_literal "2")) () ")")) ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "dStack_270")) (; ";")) (if_statement "if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }" (if "if") (parenthesized_expression "((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46)" (( "(") (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46" (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62)" (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58)" (parenthesized_expression "(dVar47 - dVar58)" (( "(") (binary_expression "dVar47 - dVar58" (identifier "dVar47") (- "-") (identifier "dVar58")) () ")")) (* "*") (parenthesized_expression "(dVar47 - dVar58)" (( "(") (binary_expression "dVar47 - dVar58" (identifier "dVar47") (- "-") (identifier "dVar58")) () ")"))) (+ "+") (binary_expression "(dVar44 - dVar62) * (dVar44 - dVar62)" (parenthesized_expression "(dVar44 - dVar62)" (( "(") (binary_expression "dVar44 - dVar62" (identifier "dVar44") (- "-") (identifier "dVar62")) () ")")) (* "*") (parenthesized_expression "(dVar44 - dVar62)" (( "(") (binary_expression "dVar44 - dVar62" (identifier "dVar44") (- "-") (identifier "dVar62")) () ")")))) (<= "<=") (identifier "dVar46")) () ")")) (compound_statement "{\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 1;\n                    }" ({ "{") (expression_statement "*pdVar21 = dVar58;" (assignment_expression "*pdVar21 = dVar58" (pointer_expression "*pdVar21" (* "*") (identifier "pdVar21")) (= "=") (identifier "dVar58")) (; ";")) (expression_statement "pdVar21[1] = dVar62;" (assignment_expression "pdVar21[1] = dVar62" (subscript_expression "pdVar21[1]" (identifier "pdVar21") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "dVar62")) (; ";")) (expression_statement "dStack_258 = dVar48;" (assignment_expression "dStack_258 = dVar48" (identifier "dStack_258") (= "=") (identifier "dVar48")) (; ";")) (expression_statement "dStack_260 = dVar49;" (assignment_expression "dStack_260 = dVar49" (identifier "dStack_260") (= "=") (identifier "dVar49")) (; ";")) (expression_statement "dVar56 = dStack_2a0;" (assignment_expression "dVar56 = dStack_2a0" (identifier "dVar56") (= "=") (identifier "dStack_2a0")) (; ";")) (expression_statement "dVar57 = dStack_2a8;" (assignment_expression "dVar57 = dStack_2a8" (identifier "dVar57") (= "=") (identifier "dStack_2a8")) (; ";")) (expression_statement "dVar59 = dStack_2b0;" (assignment_expression "dVar59 = dStack_2b0" (identifier "dVar59") (= "=") (identifier "dStack_2b0")) (; ";")) (expression_statement "dVar63 = dStack_2b8;" (assignment_expression "dVar63 = dStack_2b8" (identifier "dVar63") (= "=") (identifier "dStack_2b8")) (; ";")) (expression_statement "iVar33 = iVar33 + 2;" (assignment_expression "iVar33 = iVar33 + 2" (identifier "iVar33") (= "=") (binary_expression "iVar33 + 2" (identifier "iVar33") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "iVar35 = iVar35 + 1;" (assignment_expression "iVar35 = iVar35 + 1" (identifier "iVar35") (= "=") (binary_expression "iVar35 + 1" (identifier "iVar35") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }" (else "else") (compound_statement "{\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }" ({ "{") (expression_statement "*pdVar21 = dStack_250;" (assignment_expression "*pdVar21 = dStack_250" (pointer_expression "*pdVar21" (* "*") (identifier "pdVar21")) (= "=") (identifier "dStack_250")) (; ";")) (expression_statement "pdVar21[1] = dStack_248;" (assignment_expression "pdVar21[1] = dStack_248" (subscript_expression "pdVar21[1]" (identifier "pdVar21") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "dStack_248")) (; ";")) (expression_statement "pdVar7[iVar35 * 2 + 2] = dStack_288;" (assignment_expression "pdVar7[iVar35 * 2 + 2] = dStack_288" (subscript_expression "pdVar7[iVar35 * 2 + 2]" (identifier "pdVar7") ([ "[") (binary_expression "iVar35 * 2 + 2" (binary_expression "iVar35 * 2" (identifier "iVar35") (* "*") (number_literal "2")) (+ "+") (number_literal "2")) (] "]")) (= "=") (identifier "dStack_288")) (; ";")) (expression_statement "(pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;" (assignment_expression "(pdVar7 + iVar35 * 2 + 2)[1] = dStack_280" (subscript_expression "(pdVar7 + iVar35 * 2 + 2)[1]" (parenthesized_expression "(pdVar7 + iVar35 * 2 + 2)" (( "(") (binary_expression "pdVar7 + iVar35 * 2 + 2" (binary_expression "pdVar7 + iVar35 * 2" (identifier "pdVar7") (+ "+") (binary_expression "iVar35 * 2" (identifier "iVar35") (* "*") (number_literal "2"))) (+ "+") (number_literal "2")) () ")")) ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "dStack_280")) (; ";")) (expression_statement "dStack_258 = dVar48;" (assignment_expression "dStack_258 = dVar48" (identifier "dStack_258") (= "=") (identifier "dVar48")) (; ";")) (expression_statement "dStack_260 = dVar49;" (assignment_expression "dStack_260 = dVar49" (identifier "dStack_260") (= "=") (identifier "dVar49")) (; ";")) (expression_statement "dVar56 = dStack_2a0;" (assignment_expression "dVar56 = dStack_2a0" (identifier "dVar56") (= "=") (identifier "dStack_2a0")) (; ";")) (expression_statement "dVar57 = dStack_2a8;" (assignment_expression "dVar57 = dStack_2a8" (identifier "dVar57") (= "=") (identifier "dStack_2a8")) (; ";")) (expression_statement "dVar59 = dStack_2b0;" (assignment_expression "dVar59 = dStack_2b0" (identifier "dVar59") (= "=") (identifier "dStack_2b0")) (; ";")) (expression_statement "dVar63 = dStack_2b8;" (assignment_expression "dVar63 = dStack_2b8" (identifier "dVar63") (= "=") (identifier "dStack_2b8")) (; ";")) (expression_statement "iVar33 = iVar33 + 2;" (assignment_expression "iVar33 = iVar33 + 2" (identifier "iVar33") (= "=") (binary_expression "iVar33 + 2" (identifier "iVar33") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "iVar35 = iVar35 + 2;" (assignment_expression "iVar35 = iVar35 + 2" (identifier "iVar35") (= "=") (binary_expression "iVar35 + 2" (identifier "iVar35") (+ "+") (number_literal "2"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }" (else "else") (compound_statement "{\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }\n                  }" ({ "{") (expression_statement "dStack_258 = dVar48;" (assignment_expression "dStack_258 = dVar48" (identifier "dStack_258") (= "=") (identifier "dVar48")) (; ";")) (expression_statement "dStack_260 = dVar49;" (assignment_expression "dStack_260 = dVar49" (identifier "dStack_260") (= "=") (identifier "dVar49")) (; ";")) (expression_statement "dVar56 = dStack_2a0;" (assignment_expression "dVar56 = dStack_2a0" (identifier "dVar56") (= "=") (identifier "dStack_2a0")) (; ";")) (expression_statement "dVar57 = dStack_2a8;" (assignment_expression "dVar57 = dStack_2a8" (identifier "dVar57") (= "=") (identifier "dStack_2a8")) (; ";")) (expression_statement "dVar59 = dStack_2b0;" (assignment_expression "dVar59 = dStack_2b0" (identifier "dVar59") (= "=") (identifier "dStack_2b0")) (; ";")) (expression_statement "dVar63 = dStack_2b8;" (assignment_expression "dVar63 = dStack_2b8" (identifier "dVar63") (= "=") (identifier "dStack_2b8")) (; ";")) (if_statement "if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }" (if "if") (parenthesized_expression "(iVar9 == 1)" (( "(") (binary_expression "iVar9 == 1" (identifier "iVar9") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;\nLAB_000a58dc:\n                      iVar33 = iVar33 + 1;\n                      iVar35 = iVar35 + 1;\n                      *pdVar31 = dVar47;\n                      pdVar31[1] = dVar44;\n                      *pdVar21 = dVar58;\n                      pdVar21[1] = dVar62;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                    }" ({ "{") (expression_statement "pdVar21 = pdVar7 + iVar35 * 2;" (assignment_expression "pdVar21 = pdVar7 + iVar35 * 2" (identifier "pdVar21") (= "=") (binary_expression "pdVar7 + iVar35 * 2" (identifier "pdVar7") (+ "+") (binary_expression "iVar35 * 2" (identifier "iVar35") (* "*") (number_literal "2")))) (; ";")) (expression_statement "pdVar31 = pdVar8 + iVar33 * 2;" (assignment_expression "pdVar31 = pdVar8 + iVar33 * 2" (identifier "pdVar31") (= "=") (binary_expression "pdVar8 + iVar33 * 2" (identifier "pdVar8") (+ "+") (binary_expression "iVar33 * 2" (identifier "iVar33") (* "*") (number_literal "2")))) (; ";")) (if_statement "if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;" (if "if") (parenthesized_expression "(dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62))" (( "(") (binary_expression "dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)" (identifier "dVar46") (< "<") (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58) +\n                                   (dVar44 - dVar62) * (dVar44 - dVar62)" (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58)" (parenthesized_expression "(dVar47 - dVar58)" (( "(") (binary_expression "dVar47 - dVar58" (identifier "dVar47") (- "-") (identifier "dVar58")) () ")")) (* "*") (parenthesized_expression "(dVar47 - dVar58)" (( "(") (binary_expression "dVar47 - dVar58" (identifier "dVar47") (- "-") (identifier "dVar58")) () ")"))) (+ "+") (binary_expression "(dVar44 - dVar62) * (dVar44 - dVar62)" (parenthesized_expression "(dVar44 - dVar62)" (( "(") (binary_expression "dVar44 - dVar62" (identifier "dVar44") (- "-") (identifier "dVar62")) () ")")) (* "*") (parenthesized_expression "(dVar44 - dVar62)" (( "(") (binary_expression "dVar44 - dVar62" (identifier "dVar44") (- "-") (identifier "dVar62")) () ")"))))) () ")")) (goto_statement "goto LAB_000a607c;" (goto "goto") (statement_identifier "LAB_000a607c") (; ";"))) (labeled_statement "LAB_000a58dc:\n                      iVar33 = iVar33 + 1;" (statement_identifier "LAB_000a58dc") (: ":") (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" (identifier "iVar33") (= "=") (binary_expression "iVar33 + 1" (identifier "iVar33") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "iVar35 = iVar35 + 1;" (assignment_expression "iVar35 = iVar35 + 1" (identifier "iVar35") (= "=") (binary_expression "iVar35 + 1" (identifier "iVar35") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pdVar31 = dVar47;" (assignment_expression "*pdVar31 = dVar47" (pointer_expression "*pdVar31" (* "*") (identifier "pdVar31")) (= "=") (identifier "dVar47")) (; ";")) (expression_statement "pdVar31[1] = dVar44;" (assignment_expression "pdVar31[1] = dVar44" (subscript_expression "pdVar31[1]" (identifier "pdVar31") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "dVar44")) (; ";")) (expression_statement "*pdVar21 = dVar58;" (assignment_expression "*pdVar21 = dVar58" (pointer_expression "*pdVar21" (* "*") (identifier "pdVar21")) (= "=") (identifier "dVar58")) (; ";")) (expression_statement "pdVar21[1] = dVar62;" (assignment_expression "pdVar21[1] = dVar62" (subscript_expression "pdVar21[1]" (identifier "pdVar21") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "dVar62")) (; ";")) (expression_statement "dStack_258 = dVar48;" (assignment_expression "dStack_258 = dVar48" (identifier "dStack_258") (= "=") (identifier "dVar48")) (; ";")) (expression_statement "dStack_260 = dVar49;" (assignment_expression "dStack_260 = dVar49" (identifier "dStack_260") (= "=") (identifier "dVar49")) (; ";")) (expression_statement "dVar56 = dStack_2a0;" (assignment_expression "dVar56 = dStack_2a0" (identifier "dVar56") (= "=") (identifier "dStack_2a0")) (; ";")) (expression_statement "dVar57 = dStack_2a8;" (assignment_expression "dVar57 = dStack_2a8" (identifier "dVar57") (= "=") (identifier "dStack_2a8")) (; ";")) (expression_statement "dVar59 = dStack_2b0;" (assignment_expression "dVar59 = dStack_2b0" (identifier "dVar59") (= "=") (identifier "dStack_2b0")) (; ";")) (expression_statement "dVar63 = dStack_2b8;" (assignment_expression "dVar63 = dStack_2b8" (identifier "dVar63") (= "=") (identifier "dStack_2b8")) (; ";")) (} "}"))) (} "}")))) (goto_statement "goto joined_r0x000a5a50;" (goto "goto") (statement_identifier "joined_r0x000a5a50") (; ";")) (} "}"))) (expression_statement "iVar9 = iVar35 + 1;" (assignment_expression "iVar9 = iVar35 + 1" (identifier "iVar9") (= "=") (binary_expression "iVar35 + 1" (identifier "iVar35") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pdVar31 = pdVar7 + iVar35 * 2;" (assignment_expression "pdVar31 = pdVar7 + iVar35 * 2" (identifier "pdVar31") (= "=") (binary_expression "pdVar7 + iVar35 * 2" (identifier "pdVar7") (+ "+") (binary_expression "iVar35 * 2" (identifier "iVar35") (* "*") (number_literal "2")))) (; ";")) (if_statement "if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }\n                else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }" (if "if") (parenthesized_expression "((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46)" (( "(") (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46" (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62)" (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58)" (parenthesized_expression "(dVar47 - dVar58)" (( "(") (binary_expression "dVar47 - dVar58" (identifier "dVar47") (- "-") (identifier "dVar58")) () ")")) (* "*") (parenthesized_expression "(dVar47 - dVar58)" (( "(") (binary_expression "dVar47 - dVar58" (identifier "dVar47") (- "-") (identifier "dVar58")) () ")"))) (+ "+") (binary_expression "(dVar44 - dVar62) * (dVar44 - dVar62)" (parenthesized_expression "(dVar44 - dVar62)" (( "(") (binary_expression "dVar44 - dVar62" (identifier "dVar44") (- "-") (identifier "dVar62")) () ")")) (* "*") (parenthesized_expression "(dVar44 - dVar62)" (( "(") (binary_expression "dVar44 - dVar62" (identifier "dVar44") (- "-") (identifier "dVar62")) () ")")))) (<= "<=") (identifier "dVar46")) () ")")) (compound_statement "{\n                  *pdVar31 = dVar58;\n                  pdVar31[1] = dVar62;\n                }" ({ "{") (expression_statement "*pdVar31 = dVar58;" (assignment_expression "*pdVar31 = dVar58" (pointer_expression "*pdVar31" (* "*") (identifier "pdVar31")) (= "=") (identifier "dVar58")) (; ";")) (expression_statement "pdVar31[1] = dVar62;" (assignment_expression "pdVar31[1] = dVar62" (subscript_expression "pdVar31[1]" (identifier "pdVar31") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "dVar62")) (; ";")) (} "}")) (else_clause "else {\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }" (else "else") (compound_statement "{\n                  iVar9 = iVar35 + 2;\n                  *pdVar31 = dStack_250;\n                  pdVar31[1] = dStack_248;\n                  pdVar7[iVar35 * 2 + 2] = dStack_288;\n                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                }" ({ "{") (expression_statement "iVar9 = iVar35 + 2;" (assignment_expression "iVar9 = iVar35 + 2" (identifier "iVar9") (= "=") (binary_expression "iVar35 + 2" (identifier "iVar35") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "*pdVar31 = dStack_250;" (assignment_expression "*pdVar31 = dStack_250" (pointer_expression "*pdVar31" (* "*") (identifier "pdVar31")) (= "=") (identifier "dStack_250")) (; ";")) (expression_statement "pdVar31[1] = dStack_248;" (assignment_expression "pdVar31[1] = dStack_248" (subscript_expression "pdVar31[1]" (identifier "pdVar31") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "dStack_248")) (; ";")) (expression_statement "pdVar7[iVar35 * 2 + 2] = dStack_288;" (assignment_expression "pdVar7[iVar35 * 2 + 2] = dStack_288" (subscript_expression "pdVar7[iVar35 * 2 + 2]" (identifier "pdVar7") ([ "[") (binary_expression "iVar35 * 2 + 2" (binary_expression "iVar35 * 2" (identifier "iVar35") (* "*") (number_literal "2")) (+ "+") (number_literal "2")) (] "]")) (= "=") (identifier "dStack_288")) (; ";")) (expression_statement "(pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;" (assignment_expression "(pdVar7 + iVar35 * 2 + 2)[1] = dStack_280" (subscript_expression "(pdVar7 + iVar35 * 2 + 2)[1]" (parenthesized_expression "(pdVar7 + iVar35 * 2 + 2)" (( "(") (binary_expression "pdVar7 + iVar35 * 2 + 2" (binary_expression "pdVar7 + iVar35 * 2" (identifier "pdVar7") (+ "+") (binary_expression "iVar35 * 2" (identifier "iVar35") (* "*") (number_literal "2"))) (+ "+") (number_literal "2")) () ")")) ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "dStack_280")) (; ";")) (} "}")))) (expression_statement "dVar58 = *pdVar21;" (assignment_expression "dVar58 = *pdVar21" (identifier "dVar58") (= "=") (pointer_expression "*pdVar21" (* "*") (identifier "pdVar21"))) (; ";")) (expression_statement "dVar57 = pdVar21[1];" (assignment_expression "dVar57 = pdVar21[1]" (identifier "dVar57") (= "=") (subscript_expression "pdVar21[1]" (identifier "pdVar21") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "dVar52 = dVar57;" (assignment_expression "dVar52 = dVar57" (identifier "dVar52") (= "=") (identifier "dVar57")) (; ";")) (expression_statement "dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58);" (assignment_expression "dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58)" (identifier "dVar56") (= "=") (cast_expression "(double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_238 - dVar57,dStack_240 - dVar58)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042f8))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x3042f8)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x3042f8)" (* "*") (cast_expression "(code **)(puVar36 + 0x3042f8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3042f8)" (( "(") (binary_expression "puVar36 + 0x3042f8" (identifier "puVar36") (+ "+") (number_literal "0x3042f8")) () ")"))))) () ")")) (argument_list "(dStack_238 - dVar57,dStack_240 - dVar58)" (( "(") (binary_expression "dStack_238 - dVar57" (identifier "dStack_238") (- "-") (identifier "dVar57")) (, ",") (binary_expression "dStack_240 - dVar58" (identifier "dStack_240") (- "-") (identifier "dVar58")) () ")"))))) (; ";")) (expression_statement "dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58);" (assignment_expression "dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58)" (identifier "dVar52") (= "=") (cast_expression "(double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_270 - dVar52,dStack_278 - dVar58)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042f8))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x3042f8)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x3042f8)" (* "*") (cast_expression "(code **)(puVar36 + 0x3042f8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3042f8)" (( "(") (binary_expression "puVar36 + 0x3042f8" (identifier "puVar36") (+ "+") (number_literal "0x3042f8")) () ")"))))) () ")")) (argument_list "(dStack_270 - dVar52,dStack_278 - dVar58)" (( "(") (binary_expression "dStack_270 - dVar52" (identifier "dStack_270") (- "-") (identifier "dVar52")) (, ",") (binary_expression "dStack_278 - dVar58" (identifier "dStack_278") (- "-") (identifier "dVar58")) () ")"))))) (; ";")) (if_statement "if (dVar52 < dVar56) {\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }" (if "if") (parenthesized_expression "(dVar52 < dVar56)" (( "(") (binary_expression "dVar52 < dVar56" (identifier "dVar52") (< "<") (identifier "dVar56")) () ")")) (compound_statement "{\n                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);\n                }" ({ "{") (expression_statement "dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);" (assignment_expression "dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0)" (identifier "dVar52") (= "=") (binary_expression "dVar52 + *(double *)(iVar19 + 0x34a0)" (identifier "dVar52") (+ "+") (pointer_expression "*(double *)(iVar19 + 0x34a0)" (* "*") (cast_expression "(double *)(iVar19 + 0x34a0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x34a0)" (( "(") (binary_expression "iVar19 + 0x34a0" (identifier "iVar19") (+ "+") (number_literal "0x34a0")) () ")")))))) (; ";")) (} "}"))) (expression_statement "dVar52 = dVar52 - dVar56;" (assignment_expression "dVar52 = dVar52 - dVar56" (identifier "dVar52") (= "=") (binary_expression "dVar52 - dVar56" (identifier "dVar52") (- "-") (identifier "dVar56"))) (; ";")) (expression_statement "dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;" (assignment_expression "dVar62 = *(double *)(iVar16 + 0x1438) / dVar42" (identifier "dVar62") (= "=") (binary_expression "*(double *)(iVar16 + 0x1438) / dVar42" (pointer_expression "*(double *)(iVar16 + 0x1438)" (* "*") (cast_expression "(double *)(iVar16 + 0x1438)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x1438)" (( "(") (binary_expression "iVar16 + 0x1438" (identifier "iVar16") (+ "+") (number_literal "0x1438")) () ")")))) (/ "/") (identifier "dVar42"))) (; ";")) (expression_statement "dVar59 = SQRT(dVar62);" (assignment_expression "dVar59 = SQRT(dVar62)" (identifier "dVar59") (= "=") (call_expression "SQRT(dVar62)" (identifier "SQRT") (argument_list "(dVar62)" (( "(") (identifier "dVar62") () ")")))) (; ";")) (if_statement "if (dVar62 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }" (if "if") (parenthesized_expression "(dVar62 < 0.0)" (( "(") (binary_expression "dVar62 < 0.0" (identifier "dVar62") (< "<") (number_literal "0.0")) () ")")) (compound_statement "{\n                  (**(code **)(puVar36 + 0x304770))();\n                }" ({ "{") (expression_statement "(**(code **)(puVar36 + 0x304770))();" (call_expression "(**(code **)(puVar36 + 0x304770))()" (parenthesized_expression "(**(code **)(puVar36 + 0x304770))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x304770)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x304770)" (* "*") (cast_expression "(code **)(puVar36 + 0x304770)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x304770)" (( "(") (binary_expression "puVar36 + 0x304770" (identifier "puVar36") (+ "+") (number_literal "0x304770")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));" (assignment_expression "dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59))" (identifier "dVar62") (= "=") (cast_expression "(double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59))" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59))" (parenthesized_expression "(**(code **)(puVar36 + 0x303f10))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x303f10)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x303f10)" (* "*") (cast_expression "(code **)(puVar36 + 0x303f10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x303f10)" (( "(") (binary_expression "puVar36 + 0x303f10" (identifier "puVar36") (+ "+") (number_literal "0x303f10")) () ")"))))) () ")")) (argument_list "(dVar52 / (dVar59 + dVar59))" (( "(") (binary_expression "dVar52 / (dVar59 + dVar59)" (identifier "dVar52") (/ "/") (parenthesized_expression "(dVar59 + dVar59)" (( "(") (binary_expression "dVar59 + dVar59" (identifier "dVar59") (+ "+") (identifier "dVar59")) () ")"))) () ")"))))) (; ";")) (expression_statement "dVar59 = *(double *)(iVar15 + 0x1410);" (assignment_expression "dVar59 = *(double *)(iVar15 + 0x1410)" (identifier "dVar59") (= "=") (pointer_expression "*(double *)(iVar15 + 0x1410)" (* "*") (cast_expression "(double *)(iVar15 + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x1410)" (( "(") (binary_expression "iVar15 + 0x1410" (identifier "iVar15") (+ "+") (number_literal "0x1410")) () ")"))))) (; ";")) (if_statement "if (dVar62 < dVar59) {\n                  uVar14 = (uint)dVar62;\n                }\n                else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }" (if "if") (parenthesized_expression "(dVar62 < dVar59)" (( "(") (binary_expression "dVar62 < dVar59" (identifier "dVar62") (< "<") (identifier "dVar59")) () ")")) (compound_statement "{\n                  uVar14 = (uint)dVar62;\n                }" ({ "{") (expression_statement "uVar14 = (uint)dVar62;" (assignment_expression "uVar14 = (uint)dVar62" (identifier "uVar14") (= "=") (cast_expression "(uint)dVar62" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "dVar62"))) (; ";")) (} "}")) (else_clause "else {\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }" (else "else") (compound_statement "{\n                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;\n                }" ({ "{") (expression_statement "uVar14 = (int)(dVar62 - dVar59) | 0x80000000;" (assignment_expression "uVar14 = (int)(dVar62 - dVar59) | 0x80000000" (identifier "uVar14") (= "=") (binary_expression "(int)(dVar62 - dVar59) | 0x80000000" (cast_expression "(int)(dVar62 - dVar59)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(dVar62 - dVar59)" (( "(") (binary_expression "dVar62 - dVar59" (identifier "dVar62") (- "-") (identifier "dVar59")) () ")"))) (| "|") (number_literal "0x80000000"))) (; ";")) (} "}")))) (if_statement "if ((int)uStack_22c <= iVar9 + 0x618) {\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }" (if "if") (parenthesized_expression "((int)uStack_22c <= iVar9 + 0x618)" (( "(") (binary_expression "(int)uStack_22c <= iVar9 + 0x618" (cast_expression "(int)uStack_22c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uStack_22c")) (<= "<=") (binary_expression "iVar9 + 0x618" (identifier "iVar9") (+ "+") (number_literal "0x618"))) () ")")) (compound_statement "{\n                  if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }\n                }" ({ "{") (if_statement "if (uStack_22c < 0xfffff9e8) {\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }\n                  else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }" (if "if") (parenthesized_expression "(uStack_22c < 0xfffff9e8)" (( "(") (binary_expression "uStack_22c < 0xfffff9e8" (identifier "uStack_22c") (< "<") (number_literal "0xfffff9e8")) () ")")) (compound_statement "{\n                    iVar35 = uStack_22c + 0xc30;\n                    uStack_22c = uStack_22c + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);\n                  }" ({ "{") (expression_statement "iVar35 = uStack_22c + 0xc30;" (assignment_expression "iVar35 = uStack_22c + 0xc30" (identifier "iVar35") (= "=") (binary_expression "uStack_22c + 0xc30" (identifier "uStack_22c") (+ "+") (number_literal "0xc30"))) (; ";")) (expression_statement "uStack_22c = uStack_22c + 0x618;" (assignment_expression "uStack_22c = uStack_22c + 0x618" (identifier "uStack_22c") (= "=") (binary_expression "uStack_22c + 0x618" (identifier "uStack_22c") (+ "+") (number_literal "0x618"))) (; ";")) (expression_statement "pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);" (assignment_expression "pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10)" (identifier "pdVar7") (= "=") (cast_expression "(double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10)" (parenthesized_expression "(**(code **)(puVar36 + 0x304710))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x304710)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x304710)" (* "*") (cast_expression "(code **)(puVar36 + 0x304710)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x304710)" (( "(") (binary_expression "puVar36 + 0x304710" (identifier "puVar36") (+ "+") (number_literal "0x304710")) () ")"))))) () ")")) (argument_list "(pdVar7,iVar35,0x10)" (( "(") (identifier "pdVar7") (, ",") (identifier "iVar35") (, ",") (number_literal "0x10") () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }" (else "else") (compound_statement "{\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                  }" ({ "{") (expression_statement "pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);" (assignment_expression "pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7)" (identifier "pdVar7") (= "=") (cast_expression "(double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar7)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x3042b0)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x3042b0)" (* "*") (cast_expression "(code **)(puVar36 + 0x3042b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3042b0)" (( "(") (binary_expression "puVar36 + 0x3042b0" (identifier "puVar36") (+ "+") (number_literal "0x3042b0")) () ")"))))) () ")")) (argument_list "(pdVar7)" (( "(") (identifier "pdVar7") () ")"))))) (; ";")) (} "}")))) (} "}"))) (if_statement "if (uVar14 + 0x618 < 0x4000001) {\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }\n                else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }" (if "if") (parenthesized_expression "(uVar14 + 0x618 < 0x4000001)" (( "(") (binary_expression "uVar14 + 0x618 < 0x4000001" (binary_expression "uVar14 + 0x618" (identifier "uVar14") (+ "+") (number_literal "0x618")) (< "<") (number_literal "0x4000001")) () ")")) (compound_statement "{\n                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }\n                }" ({ "{") (if_statement "if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }" (if "if") (parenthesized_expression "((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14))" (( "(") (binary_expression "(int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)" (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4")) (<= "<=") (cast_expression "(int)(iVar33 + 0x618 + uVar14)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(iVar33 + 0x618 + uVar14)" (( "(") (binary_expression "iVar33 + 0x618 + uVar14" (binary_expression "iVar33 + 0x618" (identifier "iVar33") (+ "+") (number_literal "0x618")) (+ "+") (identifier "uVar14")) () ")")))) () ")")) (compound_statement "{\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;\n                    iVar35 = uVar14 + uVar4;\n                    uVar4 = iVar35 + 0x618;\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;\n                    goto LAB_000a64c4;\n                  }" ({ "{") (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042b0);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042b0)" (identifier "pcVar37") (= "=") (pointer_expression "*(code **)(puVar36 + 0x3042b0)" (* "*") (cast_expression "(code **)(puVar36 + 0x3042b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3042b0)" (( "(") (binary_expression "puVar36 + 0x3042b0" (identifier "puVar36") (+ "+") (number_literal "0x3042b0")) () ")"))))) (; ";")) (if_statement "if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;" (if "if") (parenthesized_expression "(~uVar4 < uVar14 + 0x618)" (( "(") (binary_expression "~uVar4 < uVar14 + 0x618" (unary_expression "~uVar4" (~ "~") (identifier "uVar4")) (< "<") (binary_expression "uVar14 + 0x618" (identifier "uVar14") (+ "+") (number_literal "0x618"))) () ")")) (goto_statement "goto LAB_000a67d4;" (goto "goto") (statement_identifier "LAB_000a67d4") (; ";"))) (expression_statement "iVar35 = uVar14 + uVar4;" (assignment_expression "iVar35 = uVar14 + uVar4" (identifier "iVar35") (= "=") (binary_expression "uVar14 + uVar4" (identifier "uVar14") (+ "+") (identifier "uVar4"))) (; ";")) (expression_statement "uVar4 = iVar35 + 0x618;" (assignment_expression "uVar4 = iVar35 + 0x618" (identifier "uVar4") (= "=") (binary_expression "iVar35 + 0x618" (identifier "iVar35") (+ "+") (number_literal "0x618"))) (; ";")) (expression_statement "pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)\n                    ;" (assignment_expression "pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)" (identifier "pdVar8") (= "=") (cast_expression "(double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)" (parenthesized_expression "(**(code **)(puVar36 + 0x304710))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x304710)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x304710)" (* "*") (cast_expression "(code **)(puVar36 + 0x304710)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x304710)" (( "(") (binary_expression "puVar36 + 0x304710" (identifier "puVar36") (+ "+") (number_literal "0x304710")) () ")"))))) () ")")) (argument_list "(pdVar8,iVar35 + 0xc30,0x10)" (( "(") (identifier "pdVar8") (, ",") (binary_expression "iVar35 + 0xc30" (identifier "iVar35") (+ "+") (number_literal "0xc30")) (, ",") (number_literal "0x10") () ")"))))) (; ";")) (goto_statement "goto LAB_000a64c4;" (goto "goto") (statement_identifier "LAB_000a64c4") (; ";")) (} "}"))) (if_statement "if (pdVar7 == (double *)0x0) {\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }" (if "if") (parenthesized_expression "(pdVar7 == (double *)0x0)" (( "(") (binary_expression "pdVar7 == (double *)0x0" (identifier "pdVar7") (== "==") (cast_expression "(double *)0x0" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6d30;\n                  }" ({ "{") (labeled_statement "LAB_000a6884:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);" (statement_identifier "LAB_000a6884") (: ":") (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar8);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar8)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x3042b0)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x3042b0)" (* "*") (cast_expression "(code **)(puVar36 + 0x3042b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3042b0)" (( "(") (binary_expression "puVar36 + 0x3042b0" (identifier "puVar36") (+ "+") (number_literal "0x3042b0")) () ")"))))) () ")")) (argument_list "(pdVar8)" (( "(") (identifier "pdVar8") () ")"))) (; ";"))) (labeled_statement "LAB_000a6d2c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);" (statement_identifier "LAB_000a6d2c") (: ":") (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042b0);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042b0)" (identifier "pcVar37") (= "=") (pointer_expression "*(code **)(puVar36 + 0x3042b0)" (* "*") (cast_expression "(code **)(puVar36 + 0x3042b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3042b0)" (( "(") (binary_expression "puVar36 + 0x3042b0" (identifier "puVar36") (+ "+") (number_literal "0x3042b0")) () ")"))))) (; ";"))) (goto_statement "goto LAB_000a6d30;" (goto "goto") (statement_identifier "LAB_000a6d30") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }" (else "else") (compound_statement "{\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);\nLAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }\n                }" ({ "{") (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042b0);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042b0)" (identifier "pcVar37") (= "=") (pointer_expression "*(code **)(puVar36 + 0x3042b0)" (* "*") (cast_expression "(code **)(puVar36 + 0x3042b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3042b0)" (( "(") (binary_expression "puVar36 + 0x3042b0" (identifier "puVar36") (+ "+") (number_literal "0x3042b0")) () ")"))))) (; ";")) (labeled_statement "LAB_000a67d4:\n                  pdVar8 = (double *)(*pcVar37)(pdVar8);" (statement_identifier "LAB_000a67d4") (: ":") (expression_statement "pdVar8 = (double *)(*pcVar37)(pdVar8);" (assignment_expression "pdVar8 = (double *)(*pcVar37)(pdVar8)" (identifier "pdVar8") (= "=") (cast_expression "(double *)(*pcVar37)(pdVar8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar37)(pdVar8)" (parenthesized_expression "(*pcVar37)" (( "(") (pointer_expression "*pcVar37" (* "*") (identifier "pcVar37")) () ")")) (argument_list "(pdVar8)" (( "(") (identifier "pdVar8") () ")"))))) (; ";"))) (labeled_statement "LAB_000a64c4:\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }" (statement_identifier "LAB_000a64c4") (: ":") (if_statement "if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }" (if "if") (parenthesized_expression "(pdVar7 == (double *)0x0)" (( "(") (binary_expression "pdVar7 == (double *)0x0" (identifier "pdVar7") (== "==") (cast_expression "(double *)0x0" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6d30:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d4f;\n                    goto LAB_000a5724;\n                  }" ({ "{") (if_statement "if (pdVar8 != (double *)0x0) goto LAB_000a6884;" (if "if") (parenthesized_expression "(pdVar8 != (double *)0x0)" (( "(") (binary_expression "pdVar8 != (double *)0x0" (identifier "pdVar8") (!= "!=") (cast_expression "(double *)0x0" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000a6884;" (goto "goto") (statement_identifier "LAB_000a6884") (; ";"))) (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042b0);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042b0)" (identifier "pcVar37") (= "=") (pointer_expression "*(code **)(puVar36 + 0x3042b0)" (* "*") (cast_expression "(code **)(puVar36 + 0x3042b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3042b0)" (( "(") (binary_expression "puVar36 + 0x3042b0" (identifier "puVar36") (+ "+") (number_literal "0x3042b0")) () ")"))))) (; ";")) (labeled_statement "LAB_000a6d30:\n                    (*pcVar37)(pdVar6);" (statement_identifier "LAB_000a6d30") (: ":") (expression_statement "(*pcVar37)(pdVar6);" (call_expression "(*pcVar37)(pdVar6)" (parenthesized_expression "(*pcVar37)" (( "(") (pointer_expression "*pcVar37" (* "*") (identifier "pcVar37")) () ")")) (argument_list "(pdVar6)" (( "(") (identifier "pdVar6") () ")"))) (; ";"))) (expression_statement "uVar26 = 0x1d4f;" (assignment_expression "uVar26 = 0x1d4f" (identifier "uVar26") (= "=") (number_literal "0x1d4f")) (; ";")) (goto_statement "goto LAB_000a5724;" (goto "goto") (statement_identifier "LAB_000a5724") (; ";")) (} "}")))) (if_statement "if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }" (if "if") (parenthesized_expression "(pdVar8 == (double *)0x0)" (( "(") (binary_expression "pdVar8 == (double *)0x0" (identifier "pdVar8") (== "==") (cast_expression "(double *)0x0" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a6d2c;\n                  }" ({ "{") (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar7);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar7)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x3042b0)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x3042b0)" (* "*") (cast_expression "(code **)(puVar36 + 0x3042b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3042b0)" (( "(") (binary_expression "puVar36 + 0x3042b0" (identifier "puVar36") (+ "+") (number_literal "0x3042b0")) () ")"))))) () ")")) (argument_list "(pdVar7)" (( "(") (identifier "pdVar7") () ")"))) (; ";")) (goto_statement "goto LAB_000a6d2c;" (goto "goto") (statement_identifier "LAB_000a6d2c") (; ";")) (} "}"))) (} "}")))) (expression_statement "pdVar21 = pdVar8 + iVar33 * 2;" (assignment_expression "pdVar21 = pdVar8 + iVar33 * 2" (identifier "pdVar21") (= "=") (binary_expression "pdVar8 + iVar33 * 2" (identifier "pdVar8") (+ "+") (binary_expression "iVar33 * 2" (identifier "iVar33") (* "*") (number_literal "2")))) (; ";")) (expression_statement "*pdVar21 = dStack_240;" (assignment_expression "*pdVar21 = dStack_240" (pointer_expression "*pdVar21" (* "*") (identifier "pdVar21")) (= "=") (identifier "dStack_240")) (; ";")) (expression_statement "pdVar21[1] = dStack_238;" (assignment_expression "pdVar21[1] = dStack_238" (subscript_expression "pdVar21[1]" (identifier "pdVar21") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "dStack_238")) (; ";")) (if_statement "if (1 < (int)uVar14) {\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }" (if "if") (parenthesized_expression "(1 < (int)uVar14)" (( "(") (binary_expression "1 < (int)uVar14" (number_literal "1") (< "<") (cast_expression "(int)uVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar14"))) () ")")) (compound_statement "{\n                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);\n                  uVar30 = 1;\n                  do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);\n                }" ({ "{") (expression_statement "uVar60 = *(undefined8 *)(iVar19 + 0x34a0);" (assignment_expression "uVar60 = *(undefined8 *)(iVar19 + 0x34a0)" (identifier "uVar60") (= "=") (pointer_expression "*(undefined8 *)(iVar19 + 0x34a0)" (* "*") (cast_expression "(undefined8 *)(iVar19 + 0x34a0)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x34a0)" (( "(") (binary_expression "iVar19 + 0x34a0" (identifier "iVar19") (+ "+") (number_literal "0x34a0")) () ")"))))) (; ";")) (expression_statement "uVar30 = 1;" (assignment_expression "uVar30 = 1" (identifier "uVar30") (= "=") (number_literal "1")) (; ";")) (do_statement "do {\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar14);" (do "do") (compound_statement "{\n                    uVar34 = uVar30 + 1;\n                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;\n                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar58;\n                    uVar45 = (*pcVar37)(dVar59,uVar60);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);\n                    pdVar21[3] = dVar42 * dVar62 + dVar57;\n                    uVar30 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  }" ({ "{") (expression_statement "uVar34 = uVar30 + 1;" (assignment_expression "uVar34 = uVar30 + 1" (identifier "uVar34") (= "=") (binary_expression "uVar30 + 1" (identifier "uVar30") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;" (assignment_expression "dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56" (identifier "dVar59") (= "=") (binary_expression "((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56" (binary_expression "((double)(int)uVar30 * dVar52) / (double)(int)uVar14" (parenthesized_expression "((double)(int)uVar30 * dVar52)" (( "(") (binary_expression "(double)(int)uVar30 * dVar52" (cast_expression "(double)(int)uVar30" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)uVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar30"))) (* "*") (identifier "dVar52")) () ")")) (/ "/") (cast_expression "(double)(int)uVar14" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)uVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar14")))) (+ "+") (identifier "dVar56"))) (; ";")) (expression_statement "uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);" (assignment_expression "uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60)" (identifier "uVar45") (= "=") (call_expression "(**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60)" (parenthesized_expression "(**(code **)(puVar36 + 0x304ca8))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x304ca8)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x304ca8)" (* "*") (cast_expression "(code **)(puVar36 + 0x304ca8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x304ca8)" (( "(") (binary_expression "puVar36 + 0x304ca8" (identifier "puVar36") (+ "+") (number_literal "0x304ca8")) () ")"))))) () ")")) (argument_list "(dVar59,uVar60)" (( "(") (identifier "dVar59") (, ",") (identifier "uVar60") () ")")))) (; ";")) (expression_statement "dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);" (assignment_expression "dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45)" (identifier "dVar62") (= "=") (cast_expression "(double)(**(code **)(puVar36 + 0x304608))(uVar45)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(puVar36 + 0x304608))(uVar45)" (parenthesized_expression "(**(code **)(puVar36 + 0x304608))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x304608)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x304608)" (* "*") (cast_expression "(code **)(puVar36 + 0x304608)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x304608)" (( "(") (binary_expression "puVar36 + 0x304608" (identifier "puVar36") (+ "+") (number_literal "0x304608")) () ")"))))) () ")")) (argument_list "(uVar45)" (( "(") (identifier "uVar45") () ")"))))) (; ";")) (expression_statement "pcVar37 = *(code **)(puVar36 + 0x304ca8);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x304ca8)" (identifier "pcVar37") (= "=") (pointer_expression "*(code **)(puVar36 + 0x304ca8)" (* "*") (cast_expression "(code **)(puVar36 + 0x304ca8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x304ca8)" (( "(") (binary_expression "puVar36 + 0x304ca8" (identifier "puVar36") (+ "+") (number_literal "0x304ca8")) () ")"))))) (; ";")) (expression_statement "pdVar21[2] = dVar42 * dVar62 + dVar58;" (assignment_expression "pdVar21[2] = dVar42 * dVar62 + dVar58" (subscript_expression "pdVar21[2]" (identifier "pdVar21") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "dVar42 * dVar62 + dVar58" (binary_expression "dVar42 * dVar62" (identifier "dVar42") (* "*") (identifier "dVar62")) (+ "+") (identifier "dVar58"))) (; ";")) (expression_statement "uVar45 = (*pcVar37)(dVar59,uVar60);" (assignment_expression "uVar45 = (*pcVar37)(dVar59,uVar60)" (identifier "uVar45") (= "=") (call_expression "(*pcVar37)(dVar59,uVar60)" (parenthesized_expression "(*pcVar37)" (( "(") (pointer_expression "*pcVar37" (* "*") (identifier "pcVar37")) () ")")) (argument_list "(dVar59,uVar60)" (( "(") (identifier "dVar59") (, ",") (identifier "uVar60") () ")")))) (; ";")) (expression_statement "dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);" (assignment_expression "dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45)" (identifier "dVar62") (= "=") (cast_expression "(double)(**(code **)(puVar36 + 0x304034))(uVar45)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(puVar36 + 0x304034))(uVar45)" (parenthesized_expression "(**(code **)(puVar36 + 0x304034))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x304034)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x304034)" (* "*") (cast_expression "(code **)(puVar36 + 0x304034)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x304034)" (( "(") (binary_expression "puVar36 + 0x304034" (identifier "puVar36") (+ "+") (number_literal "0x304034")) () ")"))))) () ")")) (argument_list "(uVar45)" (( "(") (identifier "uVar45") () ")"))))) (; ";")) (expression_statement "pdVar21[3] = dVar42 * dVar62 + dVar57;" (assignment_expression "pdVar21[3] = dVar42 * dVar62 + dVar57" (subscript_expression "pdVar21[3]" (identifier "pdVar21") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "dVar42 * dVar62 + dVar57" (binary_expression "dVar42 * dVar62" (identifier "dVar42") (* "*") (identifier "dVar62")) (+ "+") (identifier "dVar57"))) (; ";")) (expression_statement "uVar30 = uVar34;" (assignment_expression "uVar30 = uVar34" (identifier "uVar30") (= "=") (identifier "uVar34")) (; ";")) (expression_statement "pdVar21 = pdVar21 + 2;" (assignment_expression "pdVar21 = pdVar21 + 2" (identifier "pdVar21") (= "=") (binary_expression "pdVar21 + 2" (identifier "pdVar21") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar34 != uVar14)" (( "(") (binary_expression "uVar34 != uVar14" (identifier "uVar34") (!= "!=") (identifier "uVar14")) () ")")) (; ";")) (} "}"))) (expression_statement "*pdVar8 = dStack_278;" (assignment_expression "*pdVar8 = dStack_278" (pointer_expression "*pdVar8" (* "*") (identifier "pdVar8")) (= "=") (identifier "dStack_278")) (; ";")) (expression_statement "pdVar8[1] = dStack_270;" (assignment_expression "pdVar8[1] = dStack_270" (subscript_expression "pdVar8[1]" (identifier "pdVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "dStack_270")) (; ";")) (expression_statement "dStack_258 = dVar48;" (assignment_expression "dStack_258 = dVar48" (identifier "dStack_258") (= "=") (identifier "dVar48")) (; ";")) (expression_statement "dStack_260 = dVar49;" (assignment_expression "dStack_260 = dVar49" (identifier "dStack_260") (= "=") (identifier "dVar49")) (; ";")) (expression_statement "dVar56 = dStack_2a0;" (assignment_expression "dVar56 = dStack_2a0" (identifier "dVar56") (= "=") (identifier "dStack_2a0")) (; ";")) (expression_statement "dVar57 = dStack_2a8;" (assignment_expression "dVar57 = dStack_2a8" (identifier "dVar57") (= "=") (identifier "dStack_2a8")) (; ";")) (expression_statement "dVar59 = dStack_2b0;" (assignment_expression "dVar59 = dStack_2b0" (identifier "dVar59") (= "=") (identifier "dStack_2b0")) (; ";")) (expression_statement "dVar63 = dStack_2b8;" (assignment_expression "dVar63 = dStack_2b8" (identifier "dVar63") (= "=") (identifier "dStack_2b8")) (; ";")) (expression_statement "iVar33 = 1;" (assignment_expression "iVar33 = 1" (identifier "iVar33") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar35 = iVar9;" (assignment_expression "iVar35 = iVar9" (identifier "iVar35") (= "=") (identifier "iVar9")) (; ";")) (expression_statement "dVar52 = dVar54;" (assignment_expression "dVar52 = dVar54" (identifier "dVar52") (= "=") (identifier "dVar54")) (; ";")) (} "}")) (else_clause "else {\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }" (else "else") (compound_statement "{\n                if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }\n                iVar9 = iVar33 + 1;\n                pdVar31 = pdVar8 + iVar33 * 2;\n                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }\n                dVar57 = *pdVar21;\n                dVar58 = pdVar21[1];\n                dVar52 = dVar57;\n                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);\n                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);\n                if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }\n                dVar62 = dVar56 - dVar52;\n                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;\n                dVar63 = SQRT(dVar59);\n                if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }\n                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));\n                if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }\n                if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }\n                pdVar21 = pdVar7 + iVar35 * 2;\n                *pdVar21 = dStack_250;\n                pdVar21[1] = dStack_248;\n                if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }\n                *pdVar7 = dStack_288;\n                pdVar7[1] = dStack_280;\n                dStack_258 = dVar48;\n                dStack_260 = dVar49;\n                dVar56 = dStack_2a0;\n                dVar57 = dStack_2a8;\n                dVar59 = dStack_2b0;\n                dVar63 = dStack_2b8;\n                iVar33 = iVar9;\n                iVar35 = 1;\n                dVar52 = dVar54;\n              }" ({ "{") (if_statement "if (iVar9 != 2) {\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }" (if "if") (parenthesized_expression "(iVar9 != 2)" (( "(") (binary_expression "iVar9 != 2" (identifier "iVar9") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n                  if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }\n                  goto joined_r0x000a5a50;\n                }" ({ "{") (if_statement "if (iVar9 == 3) {\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }\n                  else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }" (if "if") (parenthesized_expression "(iVar9 == 3)" (( "(") (binary_expression "iVar9 == 3" (identifier "iVar9") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n                    iVar9 = iVar35 * 2;\n                    iVar3 = iVar35 * 2;\n                    iVar35 = iVar35 + 2;\n                    pdVar7[iVar9] = dStack_250;\n                    (pdVar7 + iVar9)[1] = dStack_248;\n                    pdVar21 = pdVar8 + iVar33 * 2;\n                    pdVar7[iVar3 + 2] = dStack_288;\n                    (pdVar7 + iVar3 + 2)[1] = dStack_280;\n                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }\n                  }" ({ "{") (expression_statement "iVar9 = iVar35 * 2;" (assignment_expression "iVar9 = iVar35 * 2" (identifier "iVar9") (= "=") (binary_expression "iVar35 * 2" (identifier "iVar35") (* "*") (number_literal "2"))) (; ";")) (expression_statement "iVar3 = iVar35 * 2;" (assignment_expression "iVar3 = iVar35 * 2" (identifier "iVar3") (= "=") (binary_expression "iVar35 * 2" (identifier "iVar35") (* "*") (number_literal "2"))) (; ";")) (expression_statement "iVar35 = iVar35 + 2;" (assignment_expression "iVar35 = iVar35 + 2" (identifier "iVar35") (= "=") (binary_expression "iVar35 + 2" (identifier "iVar35") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "pdVar7[iVar9] = dStack_250;" (assignment_expression "pdVar7[iVar9] = dStack_250" (subscript_expression "pdVar7[iVar9]" (identifier "pdVar7") ([ "[") (identifier "iVar9") (] "]")) (= "=") (identifier "dStack_250")) (; ";")) (expression_statement "(pdVar7 + iVar9)[1] = dStack_248;" (assignment_expression "(pdVar7 + iVar9)[1] = dStack_248" (subscript_expression "(pdVar7 + iVar9)[1]" (parenthesized_expression "(pdVar7 + iVar9)" (( "(") (binary_expression "pdVar7 + iVar9" (identifier "pdVar7") (+ "+") (identifier "iVar9")) () ")")) ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "dStack_248")) (; ";")) (expression_statement "pdVar21 = pdVar8 + iVar33 * 2;" (assignment_expression "pdVar21 = pdVar8 + iVar33 * 2" (identifier "pdVar21") (= "=") (binary_expression "pdVar8 + iVar33 * 2" (identifier "pdVar8") (+ "+") (binary_expression "iVar33 * 2" (identifier "iVar33") (* "*") (number_literal "2")))) (; ";")) (expression_statement "pdVar7[iVar3 + 2] = dStack_288;" (assignment_expression "pdVar7[iVar3 + 2] = dStack_288" (subscript_expression "pdVar7[iVar3 + 2]" (identifier "pdVar7") ([ "[") (binary_expression "iVar3 + 2" (identifier "iVar3") (+ "+") (number_literal "2")) (] "]")) (= "=") (identifier "dStack_288")) (; ";")) (expression_statement "(pdVar7 + iVar3 + 2)[1] = dStack_280;" (assignment_expression "(pdVar7 + iVar3 + 2)[1] = dStack_280" (subscript_expression "(pdVar7 + iVar3 + 2)[1]" (parenthesized_expression "(pdVar7 + iVar3 + 2)" (( "(") (binary_expression "pdVar7 + iVar3 + 2" (binary_expression "pdVar7 + iVar3" (identifier "pdVar7") (+ "+") (identifier "iVar3")) (+ "+") (number_literal "2")) () ")")) ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "dStack_280")) (; ";")) (if_statement "if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }\n                    else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }" (if "if") (parenthesized_expression "((dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46)" (( "(") (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46" (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58) +\n                        (dVar44 - dVar62) * (dVar44 - dVar62)" (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58)" (parenthesized_expression "(dVar47 - dVar58)" (( "(") (binary_expression "dVar47 - dVar58" (identifier "dVar47") (- "-") (identifier "dVar58")) () ")")) (* "*") (parenthesized_expression "(dVar47 - dVar58)" (( "(") (binary_expression "dVar47 - dVar58" (identifier "dVar47") (- "-") (identifier "dVar58")) () ")"))) (+ "+") (binary_expression "(dVar44 - dVar62) * (dVar44 - dVar62)" (parenthesized_expression "(dVar44 - dVar62)" (( "(") (binary_expression "dVar44 - dVar62" (identifier "dVar44") (- "-") (identifier "dVar62")) () ")")) (* "*") (parenthesized_expression "(dVar44 - dVar62)" (( "(") (binary_expression "dVar44 - dVar62" (identifier "dVar44") (- "-") (identifier "dVar62")) () ")")))) (<= "<=") (identifier "dVar46")) () ")")) (compound_statement "{\n                      *pdVar21 = dVar47;\n                      pdVar21[1] = dVar44;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 1;\n                    }" ({ "{") (expression_statement "*pdVar21 = dVar47;" (assignment_expression "*pdVar21 = dVar47" (pointer_expression "*pdVar21" (* "*") (identifier "pdVar21")) (= "=") (identifier "dVar47")) (; ";")) (expression_statement "pdVar21[1] = dVar44;" (assignment_expression "pdVar21[1] = dVar44" (subscript_expression "pdVar21[1]" (identifier "pdVar21") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "dVar44")) (; ";")) (expression_statement "dStack_258 = dVar48;" (assignment_expression "dStack_258 = dVar48" (identifier "dStack_258") (= "=") (identifier "dVar48")) (; ";")) (expression_statement "dStack_260 = dVar49;" (assignment_expression "dStack_260 = dVar49" (identifier "dStack_260") (= "=") (identifier "dVar49")) (; ";")) (expression_statement "dVar56 = dStack_2a0;" (assignment_expression "dVar56 = dStack_2a0" (identifier "dVar56") (= "=") (identifier "dStack_2a0")) (; ";")) (expression_statement "dVar57 = dStack_2a8;" (assignment_expression "dVar57 = dStack_2a8" (identifier "dVar57") (= "=") (identifier "dStack_2a8")) (; ";")) (expression_statement "dVar59 = dStack_2b0;" (assignment_expression "dVar59 = dStack_2b0" (identifier "dVar59") (= "=") (identifier "dStack_2b0")) (; ";")) (expression_statement "dVar63 = dStack_2b8;" (assignment_expression "dVar63 = dStack_2b8" (identifier "dVar63") (= "=") (identifier "dStack_2b8")) (; ";")) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" (identifier "iVar33") (= "=") (binary_expression "iVar33 + 1" (identifier "iVar33") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }" (else "else") (compound_statement "{\n                      *pdVar21 = dStack_240;\n                      pdVar21[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                    }" ({ "{") (expression_statement "*pdVar21 = dStack_240;" (assignment_expression "*pdVar21 = dStack_240" (pointer_expression "*pdVar21" (* "*") (identifier "pdVar21")) (= "=") (identifier "dStack_240")) (; ";")) (expression_statement "pdVar21[1] = dStack_238;" (assignment_expression "pdVar21[1] = dStack_238" (subscript_expression "pdVar21[1]" (identifier "pdVar21") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "dStack_238")) (; ";")) (expression_statement "pdVar8[iVar33 * 2 + 2] = dStack_278;" (assignment_expression "pdVar8[iVar33 * 2 + 2] = dStack_278" (subscript_expression "pdVar8[iVar33 * 2 + 2]" (identifier "pdVar8") ([ "[") (binary_expression "iVar33 * 2 + 2" (binary_expression "iVar33 * 2" (identifier "iVar33") (* "*") (number_literal "2")) (+ "+") (number_literal "2")) (] "]")) (= "=") (identifier "dStack_278")) (; ";")) (expression_statement "(pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;" (assignment_expression "(pdVar8 + iVar33 * 2 + 2)[1] = dStack_270" (subscript_expression "(pdVar8 + iVar33 * 2 + 2)[1]" (parenthesized_expression "(pdVar8 + iVar33 * 2 + 2)" (( "(") (binary_expression "pdVar8 + iVar33 * 2 + 2" (binary_expression "pdVar8 + iVar33 * 2" (identifier "pdVar8") (+ "+") (binary_expression "iVar33 * 2" (identifier "iVar33") (* "*") (number_literal "2"))) (+ "+") (number_literal "2")) () ")")) ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "dStack_270")) (; ";")) (expression_statement "dStack_258 = dVar48;" (assignment_expression "dStack_258 = dVar48" (identifier "dStack_258") (= "=") (identifier "dVar48")) (; ";")) (expression_statement "dStack_260 = dVar49;" (assignment_expression "dStack_260 = dVar49" (identifier "dStack_260") (= "=") (identifier "dVar49")) (; ";")) (expression_statement "dVar56 = dStack_2a0;" (assignment_expression "dVar56 = dStack_2a0" (identifier "dVar56") (= "=") (identifier "dStack_2a0")) (; ";")) (expression_statement "dVar57 = dStack_2a8;" (assignment_expression "dVar57 = dStack_2a8" (identifier "dVar57") (= "=") (identifier "dStack_2a8")) (; ";")) (expression_statement "dVar59 = dStack_2b0;" (assignment_expression "dVar59 = dStack_2b0" (identifier "dVar59") (= "=") (identifier "dStack_2b0")) (; ";")) (expression_statement "dVar63 = dStack_2b8;" (assignment_expression "dVar63 = dStack_2b8" (identifier "dVar63") (= "=") (identifier "dStack_2b8")) (; ";")) (expression_statement "iVar33 = iVar33 + 2;" (assignment_expression "iVar33 = iVar33 + 2" (identifier "iVar33") (= "=") (binary_expression "iVar33 + 2" (identifier "iVar33") (+ "+") (number_literal "2"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }" (else "else") (compound_statement "{\n                    dStack_258 = dVar48;\n                    dStack_260 = dVar49;\n                    dVar56 = dStack_2a0;\n                    dVar57 = dStack_2a8;\n                    dVar59 = dStack_2b0;\n                    dVar63 = dStack_2b8;\n                    if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }\n                  }" ({ "{") (expression_statement "dStack_258 = dVar48;" (assignment_expression "dStack_258 = dVar48" (identifier "dStack_258") (= "=") (identifier "dVar48")) (; ";")) (expression_statement "dStack_260 = dVar49;" (assignment_expression "dStack_260 = dVar49" (identifier "dStack_260") (= "=") (identifier "dVar49")) (; ";")) (expression_statement "dVar56 = dStack_2a0;" (assignment_expression "dVar56 = dStack_2a0" (identifier "dVar56") (= "=") (identifier "dStack_2a0")) (; ";")) (expression_statement "dVar57 = dStack_2a8;" (assignment_expression "dVar57 = dStack_2a8" (identifier "dVar57") (= "=") (identifier "dStack_2a8")) (; ";")) (expression_statement "dVar59 = dStack_2b0;" (assignment_expression "dVar59 = dStack_2b0" (identifier "dVar59") (= "=") (identifier "dStack_2b0")) (; ";")) (expression_statement "dVar63 = dStack_2b8;" (assignment_expression "dVar63 = dStack_2b8" (identifier "dVar63") (= "=") (identifier "dStack_2b8")) (; ";")) (if_statement "if (iVar9 == 1) {\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }" (if "if") (parenthesized_expression "(iVar9 == 1)" (( "(") (binary_expression "iVar9 == 1" (identifier "iVar9") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                      pdVar21 = pdVar7 + iVar35 * 2;\n                      pdVar31 = pdVar8 + iVar33 * 2;\n                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;\nLAB_000a607c:\n                      *pdVar31 = dStack_240;\n                      pdVar31[1] = dStack_238;\n                      pdVar8[iVar33 * 2 + 2] = dStack_278;\n                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                      *pdVar21 = dStack_250;\n                      pdVar21[1] = dStack_248;\n                      pdVar7[iVar35 * 2 + 2] = dStack_288;\n                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;\n                      dStack_258 = dVar48;\n                      dStack_260 = dVar49;\n                      dVar56 = dStack_2a0;\n                      dVar57 = dStack_2a8;\n                      dVar59 = dStack_2b0;\n                      dVar63 = dStack_2b8;\n                      iVar33 = iVar33 + 2;\n                      iVar35 = iVar35 + 2;\n                    }" ({ "{") (expression_statement "pdVar21 = pdVar7 + iVar35 * 2;" (assignment_expression "pdVar21 = pdVar7 + iVar35 * 2" (identifier "pdVar21") (= "=") (binary_expression "pdVar7 + iVar35 * 2" (identifier "pdVar7") (+ "+") (binary_expression "iVar35 * 2" (identifier "iVar35") (* "*") (number_literal "2")))) (; ";")) (expression_statement "pdVar31 = pdVar8 + iVar33 * 2;" (assignment_expression "pdVar31 = pdVar8 + iVar33 * 2" (identifier "pdVar31") (= "=") (binary_expression "pdVar8 + iVar33 * 2" (identifier "pdVar8") (+ "+") (binary_expression "iVar33 * 2" (identifier "iVar33") (* "*") (number_literal "2")))) (; ";")) (if_statement "if ((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;" (if "if") (parenthesized_expression "((dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46)" (( "(") (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46" (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58) +\n                          (dVar44 - dVar62) * (dVar44 - dVar62)" (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58)" (parenthesized_expression "(dVar47 - dVar58)" (( "(") (binary_expression "dVar47 - dVar58" (identifier "dVar47") (- "-") (identifier "dVar58")) () ")")) (* "*") (parenthesized_expression "(dVar47 - dVar58)" (( "(") (binary_expression "dVar47 - dVar58" (identifier "dVar47") (- "-") (identifier "dVar58")) () ")"))) (+ "+") (binary_expression "(dVar44 - dVar62) * (dVar44 - dVar62)" (parenthesized_expression "(dVar44 - dVar62)" (( "(") (binary_expression "dVar44 - dVar62" (identifier "dVar44") (- "-") (identifier "dVar62")) () ")")) (* "*") (parenthesized_expression "(dVar44 - dVar62)" (( "(") (binary_expression "dVar44 - dVar62" (identifier "dVar44") (- "-") (identifier "dVar62")) () ")")))) (<= "<=") (identifier "dVar46")) () ")")) (goto_statement "goto LAB_000a58dc;" (goto "goto") (statement_identifier "LAB_000a58dc") (; ";"))) (labeled_statement "LAB_000a607c:\n                      *pdVar31 = dStack_240;" (statement_identifier "LAB_000a607c") (: ":") (expression_statement "*pdVar31 = dStack_240;" (assignment_expression "*pdVar31 = dStack_240" (pointer_expression "*pdVar31" (* "*") (identifier "pdVar31")) (= "=") (identifier "dStack_240")) (; ";"))) (expression_statement "pdVar31[1] = dStack_238;" (assignment_expression "pdVar31[1] = dStack_238" (subscript_expression "pdVar31[1]" (identifier "pdVar31") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "dStack_238")) (; ";")) (expression_statement "pdVar8[iVar33 * 2 + 2] = dStack_278;" (assignment_expression "pdVar8[iVar33 * 2 + 2] = dStack_278" (subscript_expression "pdVar8[iVar33 * 2 + 2]" (identifier "pdVar8") ([ "[") (binary_expression "iVar33 * 2 + 2" (binary_expression "iVar33 * 2" (identifier "iVar33") (* "*") (number_literal "2")) (+ "+") (number_literal "2")) (] "]")) (= "=") (identifier "dStack_278")) (; ";")) (expression_statement "(pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;" (assignment_expression "(pdVar8 + iVar33 * 2 + 2)[1] = dStack_270" (subscript_expression "(pdVar8 + iVar33 * 2 + 2)[1]" (parenthesized_expression "(pdVar8 + iVar33 * 2 + 2)" (( "(") (binary_expression "pdVar8 + iVar33 * 2 + 2" (binary_expression "pdVar8 + iVar33 * 2" (identifier "pdVar8") (+ "+") (binary_expression "iVar33 * 2" (identifier "iVar33") (* "*") (number_literal "2"))) (+ "+") (number_literal "2")) () ")")) ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "dStack_270")) (; ";")) (expression_statement "*pdVar21 = dStack_250;" (assignment_expression "*pdVar21 = dStack_250" (pointer_expression "*pdVar21" (* "*") (identifier "pdVar21")) (= "=") (identifier "dStack_250")) (; ";")) (expression_statement "pdVar21[1] = dStack_248;" (assignment_expression "pdVar21[1] = dStack_248" (subscript_expression "pdVar21[1]" (identifier "pdVar21") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "dStack_248")) (; ";")) (expression_statement "pdVar7[iVar35 * 2 + 2] = dStack_288;" (assignment_expression "pdVar7[iVar35 * 2 + 2] = dStack_288" (subscript_expression "pdVar7[iVar35 * 2 + 2]" (identifier "pdVar7") ([ "[") (binary_expression "iVar35 * 2 + 2" (binary_expression "iVar35 * 2" (identifier "iVar35") (* "*") (number_literal "2")) (+ "+") (number_literal "2")) (] "]")) (= "=") (identifier "dStack_288")) (; ";")) (expression_statement "(pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;" (assignment_expression "(pdVar7 + iVar35 * 2 + 2)[1] = dStack_280" (subscript_expression "(pdVar7 + iVar35 * 2 + 2)[1]" (parenthesized_expression "(pdVar7 + iVar35 * 2 + 2)" (( "(") (binary_expression "pdVar7 + iVar35 * 2 + 2" (binary_expression "pdVar7 + iVar35 * 2" (identifier "pdVar7") (+ "+") (binary_expression "iVar35 * 2" (identifier "iVar35") (* "*") (number_literal "2"))) (+ "+") (number_literal "2")) () ")")) ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "dStack_280")) (; ";")) (expression_statement "dStack_258 = dVar48;" (assignment_expression "dStack_258 = dVar48" (identifier "dStack_258") (= "=") (identifier "dVar48")) (; ";")) (expression_statement "dStack_260 = dVar49;" (assignment_expression "dStack_260 = dVar49" (identifier "dStack_260") (= "=") (identifier "dVar49")) (; ";")) (expression_statement "dVar56 = dStack_2a0;" (assignment_expression "dVar56 = dStack_2a0" (identifier "dVar56") (= "=") (identifier "dStack_2a0")) (; ";")) (expression_statement "dVar57 = dStack_2a8;" (assignment_expression "dVar57 = dStack_2a8" (identifier "dVar57") (= "=") (identifier "dStack_2a8")) (; ";")) (expression_statement "dVar59 = dStack_2b0;" (assignment_expression "dVar59 = dStack_2b0" (identifier "dVar59") (= "=") (identifier "dStack_2b0")) (; ";")) (expression_statement "dVar63 = dStack_2b8;" (assignment_expression "dVar63 = dStack_2b8" (identifier "dVar63") (= "=") (identifier "dStack_2b8")) (; ";")) (expression_statement "iVar33 = iVar33 + 2;" (assignment_expression "iVar33 = iVar33 + 2" (identifier "iVar33") (= "=") (binary_expression "iVar33 + 2" (identifier "iVar33") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "iVar35 = iVar35 + 2;" (assignment_expression "iVar35 = iVar35 + 2" (identifier "iVar35") (= "=") (binary_expression "iVar35 + 2" (identifier "iVar35") (+ "+") (number_literal "2"))) (; ";")) (} "}"))) (} "}")))) (goto_statement "goto joined_r0x000a5a50;" (goto "goto") (statement_identifier "joined_r0x000a5a50") (; ";")) (} "}"))) (expression_statement "iVar9 = iVar33 + 1;" (assignment_expression "iVar9 = iVar33 + 1" (identifier "iVar9") (= "=") (binary_expression "iVar33 + 1" (identifier "iVar33") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pdVar31 = pdVar8 + iVar33 * 2;" (assignment_expression "pdVar31 = pdVar8 + iVar33 * 2" (identifier "pdVar31") (= "=") (binary_expression "pdVar8 + iVar33 * 2" (identifier "pdVar8") (+ "+") (binary_expression "iVar33 * 2" (identifier "iVar33") (* "*") (number_literal "2")))) (; ";")) (if_statement "if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46) {\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }\n                else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }" (if "if") (parenthesized_expression "((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46)" (( "(") (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=\n                    dVar46" (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62)" (binary_expression "(dVar47 - dVar58) * (dVar47 - dVar58)" (parenthesized_expression "(dVar47 - dVar58)" (( "(") (binary_expression "dVar47 - dVar58" (identifier "dVar47") (- "-") (identifier "dVar58")) () ")")) (* "*") (parenthesized_expression "(dVar47 - dVar58)" (( "(") (binary_expression "dVar47 - dVar58" (identifier "dVar47") (- "-") (identifier "dVar58")) () ")"))) (+ "+") (binary_expression "(dVar44 - dVar62) * (dVar44 - dVar62)" (parenthesized_expression "(dVar44 - dVar62)" (( "(") (binary_expression "dVar44 - dVar62" (identifier "dVar44") (- "-") (identifier "dVar62")) () ")")) (* "*") (parenthesized_expression "(dVar44 - dVar62)" (( "(") (binary_expression "dVar44 - dVar62" (identifier "dVar44") (- "-") (identifier "dVar62")) () ")")))) (<= "<=") (identifier "dVar46")) () ")")) (compound_statement "{\n                  *pdVar31 = dVar47;\n                  pdVar31[1] = dVar44;\n                }" ({ "{") (expression_statement "*pdVar31 = dVar47;" (assignment_expression "*pdVar31 = dVar47" (pointer_expression "*pdVar31" (* "*") (identifier "pdVar31")) (= "=") (identifier "dVar47")) (; ";")) (expression_statement "pdVar31[1] = dVar44;" (assignment_expression "pdVar31[1] = dVar44" (subscript_expression "pdVar31[1]" (identifier "pdVar31") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "dVar44")) (; ";")) (} "}")) (else_clause "else {\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }" (else "else") (compound_statement "{\n                  iVar9 = iVar33 + 2;\n                  *pdVar31 = dStack_240;\n                  pdVar31[1] = dStack_238;\n                  pdVar8[iVar33 * 2 + 2] = dStack_278;\n                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;\n                }" ({ "{") (expression_statement "iVar9 = iVar33 + 2;" (assignment_expression "iVar9 = iVar33 + 2" (identifier "iVar9") (= "=") (binary_expression "iVar33 + 2" (identifier "iVar33") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "*pdVar31 = dStack_240;" (assignment_expression "*pdVar31 = dStack_240" (pointer_expression "*pdVar31" (* "*") (identifier "pdVar31")) (= "=") (identifier "dStack_240")) (; ";")) (expression_statement "pdVar31[1] = dStack_238;" (assignment_expression "pdVar31[1] = dStack_238" (subscript_expression "pdVar31[1]" (identifier "pdVar31") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "dStack_238")) (; ";")) (expression_statement "pdVar8[iVar33 * 2 + 2] = dStack_278;" (assignment_expression "pdVar8[iVar33 * 2 + 2] = dStack_278" (subscript_expression "pdVar8[iVar33 * 2 + 2]" (identifier "pdVar8") ([ "[") (binary_expression "iVar33 * 2 + 2" (binary_expression "iVar33 * 2" (identifier "iVar33") (* "*") (number_literal "2")) (+ "+") (number_literal "2")) (] "]")) (= "=") (identifier "dStack_278")) (; ";")) (expression_statement "(pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;" (assignment_expression "(pdVar8 + iVar33 * 2 + 2)[1] = dStack_270" (subscript_expression "(pdVar8 + iVar33 * 2 + 2)[1]" (parenthesized_expression "(pdVar8 + iVar33 * 2 + 2)" (( "(") (binary_expression "pdVar8 + iVar33 * 2 + 2" (binary_expression "pdVar8 + iVar33 * 2" (identifier "pdVar8") (+ "+") (binary_expression "iVar33 * 2" (identifier "iVar33") (* "*") (number_literal "2"))) (+ "+") (number_literal "2")) () ")")) ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "dStack_270")) (; ";")) (} "}")))) (expression_statement "dVar57 = *pdVar21;" (assignment_expression "dVar57 = *pdVar21" (identifier "dVar57") (= "=") (pointer_expression "*pdVar21" (* "*") (identifier "pdVar21"))) (; ";")) (expression_statement "dVar58 = pdVar21[1];" (assignment_expression "dVar58 = pdVar21[1]" (identifier "dVar58") (= "=") (subscript_expression "pdVar21[1]" (identifier "pdVar21") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "dVar52 = dVar57;" (assignment_expression "dVar52 = dVar57" (identifier "dVar52") (= "=") (identifier "dVar57")) (; ";")) (expression_statement "dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57);" (assignment_expression "dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57)" (identifier "dVar56") (= "=") (cast_expression "(double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_248 - dVar58,dStack_250 - dVar57)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042f8))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x3042f8)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x3042f8)" (* "*") (cast_expression "(code **)(puVar36 + 0x3042f8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3042f8)" (( "(") (binary_expression "puVar36 + 0x3042f8" (identifier "puVar36") (+ "+") (number_literal "0x3042f8")) () ")"))))) () ")")) (argument_list "(dStack_248 - dVar58,dStack_250 - dVar57)" (( "(") (binary_expression "dStack_248 - dVar58" (identifier "dStack_248") (- "-") (identifier "dVar58")) (, ",") (binary_expression "dStack_250 - dVar57" (identifier "dStack_250") (- "-") (identifier "dVar57")) () ")"))))) (; ";")) (expression_statement "dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52);" (assignment_expression "dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52)" (identifier "dVar52") (= "=") (cast_expression "(double)(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(puVar36 + 0x3042f8))\n                                           (dStack_280 - dVar58,dStack_288 - dVar52)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042f8))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x3042f8)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x3042f8)" (* "*") (cast_expression "(code **)(puVar36 + 0x3042f8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3042f8)" (( "(") (binary_expression "puVar36 + 0x3042f8" (identifier "puVar36") (+ "+") (number_literal "0x3042f8")) () ")"))))) () ")")) (argument_list "(dStack_280 - dVar58,dStack_288 - dVar52)" (( "(") (binary_expression "dStack_280 - dVar58" (identifier "dStack_280") (- "-") (identifier "dVar58")) (, ",") (binary_expression "dStack_288 - dVar52" (identifier "dStack_288") (- "-") (identifier "dVar52")) () ")"))))) (; ";")) (if_statement "if (dVar56 < dVar52) {\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }" (if "if") (parenthesized_expression "(dVar56 < dVar52)" (( "(") (binary_expression "dVar56 < dVar52" (identifier "dVar56") (< "<") (identifier "dVar52")) () ")")) (compound_statement "{\n                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);\n                }" ({ "{") (expression_statement "dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);" (assignment_expression "dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0)" (identifier "dVar56") (= "=") (binary_expression "dVar56 + *(double *)(iVar19 + 0x34a0)" (identifier "dVar56") (+ "+") (pointer_expression "*(double *)(iVar19 + 0x34a0)" (* "*") (cast_expression "(double *)(iVar19 + 0x34a0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x34a0)" (( "(") (binary_expression "iVar19 + 0x34a0" (identifier "iVar19") (+ "+") (number_literal "0x34a0")) () ")")))))) (; ";")) (} "}"))) (expression_statement "dVar62 = dVar56 - dVar52;" (assignment_expression "dVar62 = dVar56 - dVar52" (identifier "dVar62") (= "=") (binary_expression "dVar56 - dVar52" (identifier "dVar56") (- "-") (identifier "dVar52"))) (; ";")) (expression_statement "dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;" (assignment_expression "dVar59 = *(double *)(iVar16 + 0x1438) / dVar42" (identifier "dVar59") (= "=") (binary_expression "*(double *)(iVar16 + 0x1438) / dVar42" (pointer_expression "*(double *)(iVar16 + 0x1438)" (* "*") (cast_expression "(double *)(iVar16 + 0x1438)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 + 0x1438)" (( "(") (binary_expression "iVar16 + 0x1438" (identifier "iVar16") (+ "+") (number_literal "0x1438")) () ")")))) (/ "/") (identifier "dVar42"))) (; ";")) (expression_statement "dVar63 = SQRT(dVar59);" (assignment_expression "dVar63 = SQRT(dVar59)" (identifier "dVar63") (= "=") (call_expression "SQRT(dVar59)" (identifier "SQRT") (argument_list "(dVar59)" (( "(") (identifier "dVar59") () ")")))) (; ";")) (if_statement "if (dVar59 < 0.0) {\n                  (**(code **)(puVar36 + 0x304770))();\n                }" (if "if") (parenthesized_expression "(dVar59 < 0.0)" (( "(") (binary_expression "dVar59 < 0.0" (identifier "dVar59") (< "<") (number_literal "0.0")) () ")")) (compound_statement "{\n                  (**(code **)(puVar36 + 0x304770))();\n                }" ({ "{") (expression_statement "(**(code **)(puVar36 + 0x304770))();" (call_expression "(**(code **)(puVar36 + 0x304770))()" (parenthesized_expression "(**(code **)(puVar36 + 0x304770))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x304770)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x304770)" (* "*") (cast_expression "(code **)(puVar36 + 0x304770)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x304770)" (( "(") (binary_expression "puVar36 + 0x304770" (identifier "puVar36") (+ "+") (number_literal "0x304770")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));" (assignment_expression "dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63))" (identifier "dVar62") (= "=") (cast_expression "(double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63))" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63))" (parenthesized_expression "(**(code **)(puVar36 + 0x303f10))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x303f10)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x303f10)" (* "*") (cast_expression "(code **)(puVar36 + 0x303f10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x303f10)" (( "(") (binary_expression "puVar36 + 0x303f10" (identifier "puVar36") (+ "+") (number_literal "0x303f10")) () ")"))))) () ")")) (argument_list "(dVar62 / (dVar63 + dVar63))" (( "(") (binary_expression "dVar62 / (dVar63 + dVar63)" (identifier "dVar62") (/ "/") (parenthesized_expression "(dVar63 + dVar63)" (( "(") (binary_expression "dVar63 + dVar63" (identifier "dVar63") (+ "+") (identifier "dVar63")) () ")"))) () ")"))))) (; ";")) (if_statement "if (dVar62 < dVar40) {\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }\n                else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }" (if "if") (parenthesized_expression "(dVar62 < dVar40)" (( "(") (binary_expression "dVar62 < dVar40" (identifier "dVar62") (< "<") (identifier "dVar40")) () ")")) (compound_statement "{\n                  uVar30 = (uint)dVar62;\n                  uVar14 = uVar30 + 0x618;\n                  pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;\nLAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);\n                }" ({ "{") (expression_statement "uVar30 = (uint)dVar62;" (assignment_expression "uVar30 = (uint)dVar62" (identifier "uVar30") (= "=") (cast_expression "(uint)dVar62" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "dVar62"))) (; ";")) (expression_statement "uVar14 = uVar30 + 0x618;" (assignment_expression "uVar14 = uVar30 + 0x618" (identifier "uVar14") (= "=") (binary_expression "uVar30 + 0x618" (identifier "uVar30") (+ "+") (number_literal "0x618"))) (; ";")) (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042b0);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042b0)" (identifier "pcVar37") (= "=") (pointer_expression "*(code **)(puVar36 + 0x3042b0)" (* "*") (cast_expression "(code **)(puVar36 + 0x3042b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3042b0)" (( "(") (binary_expression "puVar36 + 0x3042b0" (identifier "puVar36") (+ "+") (number_literal "0x3042b0")) () ")"))))) (; ";")) (if_statement "if (uVar14 < 0x4000001) goto LAB_000a5ec0;" (if "if") (parenthesized_expression "(uVar14 < 0x4000001)" (( "(") (binary_expression "uVar14 < 0x4000001" (identifier "uVar14") (< "<") (number_literal "0x4000001")) () ")")) (goto_statement "goto LAB_000a5ec0;" (goto "goto") (statement_identifier "LAB_000a5ec0") (; ";"))) (labeled_statement "LAB_000a66a4:\n                  pdVar7 = (double *)(*pcVar37)(pdVar7);" (statement_identifier "LAB_000a66a4") (: ":") (expression_statement "pdVar7 = (double *)(*pcVar37)(pdVar7);" (assignment_expression "pdVar7 = (double *)(*pcVar37)(pdVar7)" (identifier "pdVar7") (= "=") (cast_expression "(double *)(*pcVar37)(pdVar7)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar37)(pdVar7)" (parenthesized_expression "(*pcVar37)" (( "(") (pointer_expression "*pcVar37" (* "*") (identifier "pcVar37")) () ")")) (argument_list "(pdVar7)" (( "(") (identifier "pdVar7") () ")"))))) (; ";"))) (} "}")) (else_clause "else {\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }" (else "else") (compound_statement "{\n                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;\n                  uVar14 = uVar30 + 0x618;\n                  if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }\nLAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }\n                }" ({ "{") (expression_statement "uVar30 = (int)(dVar62 - dVar40) | 0x80000000;" (assignment_expression "uVar30 = (int)(dVar62 - dVar40) | 0x80000000" (identifier "uVar30") (= "=") (binary_expression "(int)(dVar62 - dVar40) | 0x80000000" (cast_expression "(int)(dVar62 - dVar40)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(dVar62 - dVar40)" (( "(") (binary_expression "dVar62 - dVar40" (identifier "dVar62") (- "-") (identifier "dVar40")) () ")"))) (| "|") (number_literal "0x80000000"))) (; ";")) (expression_statement "uVar14 = uVar30 + 0x618;" (assignment_expression "uVar14 = uVar30 + 0x618" (identifier "uVar14") (= "=") (binary_expression "uVar30 + 0x618" (identifier "uVar30") (+ "+") (number_literal "0x618"))) (; ";")) (if_statement "if (0x4000000 < uVar14) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }" (if "if") (parenthesized_expression "(0x4000000 < uVar14)" (( "(") (binary_expression "0x4000000 < uVar14" (number_literal "0x4000000") (< "<") (identifier "uVar14")) () ")")) (compound_statement "{\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a66a4;\n                  }" ({ "{") (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042b0);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042b0)" (identifier "pcVar37") (= "=") (pointer_expression "*(code **)(puVar36 + 0x3042b0)" (* "*") (cast_expression "(code **)(puVar36 + 0x3042b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3042b0)" (( "(") (binary_expression "puVar36 + 0x3042b0" (identifier "puVar36") (+ "+") (number_literal "0x3042b0")) () ")"))))) (; ";")) (goto_statement "goto LAB_000a66a4;" (goto "goto") (statement_identifier "LAB_000a66a4") (; ";")) (} "}"))) (labeled_statement "LAB_000a5ec0:\n                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }" (statement_identifier "LAB_000a5ec0") (: ":") (if_statement "if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }" (if "if") (parenthesized_expression "((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30))" (( "(") (binary_expression "(int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)" (cast_expression "(int)uStack_22c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uStack_22c")) (<= "<=") (cast_expression "(int)(iVar35 + 0x618 + uVar30)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(iVar35 + 0x618 + uVar30)" (( "(") (binary_expression "iVar35 + 0x618 + uVar30" (binary_expression "iVar35 + 0x618" (identifier "iVar35") (+ "+") (number_literal "0x618")) (+ "+") (identifier "uVar30")) () ")")))) () ")")) (compound_statement "{\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    if (~uStack_22c < uVar14) goto LAB_000a66a4;\n                    iVar33 = uStack_22c + uVar30;\n                    uStack_22c = iVar33 + 0x618;\n                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;\n                  }" ({ "{") (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042b0);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042b0)" (identifier "pcVar37") (= "=") (pointer_expression "*(code **)(puVar36 + 0x3042b0)" (* "*") (cast_expression "(code **)(puVar36 + 0x3042b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3042b0)" (( "(") (binary_expression "puVar36 + 0x3042b0" (identifier "puVar36") (+ "+") (number_literal "0x3042b0")) () ")"))))) (; ";")) (if_statement "if (~uStack_22c < uVar14) goto LAB_000a66a4;" (if "if") (parenthesized_expression "(~uStack_22c < uVar14)" (( "(") (binary_expression "~uStack_22c < uVar14" (unary_expression "~uStack_22c" (~ "~") (identifier "uStack_22c")) (< "<") (identifier "uVar14")) () ")")) (goto_statement "goto LAB_000a66a4;" (goto "goto") (statement_identifier "LAB_000a66a4") (; ";"))) (expression_statement "iVar33 = uStack_22c + uVar30;" (assignment_expression "iVar33 = uStack_22c + uVar30" (identifier "iVar33") (= "=") (binary_expression "uStack_22c + uVar30" (identifier "uStack_22c") (+ "+") (identifier "uVar30"))) (; ";")) (expression_statement "uStack_22c = iVar33 + 0x618;" (assignment_expression "uStack_22c = iVar33 + 0x618" (identifier "uStack_22c") (= "=") (binary_expression "iVar33 + 0x618" (identifier "iVar33") (+ "+") (number_literal "0x618"))) (; ";")) (expression_statement "pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)\n                    ;" (assignment_expression "pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)" (identifier "pdVar7") (= "=") (cast_expression "(double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)" (parenthesized_expression "(**(code **)(puVar36 + 0x304710))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x304710)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x304710)" (* "*") (cast_expression "(code **)(puVar36 + 0x304710)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x304710)" (( "(") (binary_expression "puVar36 + 0x304710" (identifier "puVar36") (+ "+") (number_literal "0x304710")) () ")"))))) () ")")) (argument_list "(pdVar7,iVar33 + 0xc30,0x10)" (( "(") (identifier "pdVar7") (, ",") (binary_expression "iVar33 + 0xc30" (identifier "iVar33") (+ "+") (number_literal "0xc30")) (, ",") (number_literal "0x10") () ")"))))) (; ";")) (} "}")))) (} "}")))) (if_statement "if (iVar9 + 0x618 < (int)uVar4) {\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }\n                else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }" (if "if") (parenthesized_expression "(iVar9 + 0x618 < (int)uVar4)" (( "(") (binary_expression "iVar9 + 0x618 < (int)uVar4" (binary_expression "iVar9 + 0x618" (identifier "iVar9") (+ "+") (number_literal "0x618")) (< "<") (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4"))) () ")")) (compound_statement "{\n                  if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }\n                }" ({ "{") (if_statement "if (pdVar7 == (double *)0x0) {\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }" (if "if") (parenthesized_expression "(pdVar7 == (double *)0x0)" (( "(") (binary_expression "pdVar7 == (double *)0x0" (identifier "pdVar7") (== "==") (cast_expression "(double *)0x0" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\nLAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\n                    goto LAB_000a6660;\n                  }" ({ "{") (labeled_statement "LAB_000a664c:\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);" (statement_identifier "LAB_000a664c") (: ":") (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar8);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar8)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x3042b0)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x3042b0)" (* "*") (cast_expression "(code **)(puVar36 + 0x3042b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3042b0)" (( "(") (binary_expression "puVar36 + 0x3042b0" (identifier "puVar36") (+ "+") (number_literal "0x3042b0")) () ")"))))) () ")")) (argument_list "(pdVar8)" (( "(") (identifier "pdVar8") () ")"))) (; ";"))) (labeled_statement "LAB_000a665c:\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);" (statement_identifier "LAB_000a665c") (: ":") (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042b0);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042b0)" (identifier "pcVar37") (= "=") (pointer_expression "*(code **)(puVar36 + 0x3042b0)" (* "*") (cast_expression "(code **)(puVar36 + 0x3042b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3042b0)" (( "(") (binary_expression "puVar36 + 0x3042b0" (identifier "puVar36") (+ "+") (number_literal "0x3042b0")) () ")"))))) (; ";"))) (goto_statement "goto LAB_000a6660;" (goto "goto") (statement_identifier "LAB_000a6660") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }" (else "else") (compound_statement "{\n                  if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }\n                  if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }\n                  if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }\n                }" ({ "{") (if_statement "if (uVar4 < 0xfffff9e8) {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }\n                  else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }" (if "if") (parenthesized_expression "(uVar4 < 0xfffff9e8)" (( "(") (binary_expression "uVar4 < 0xfffff9e8" (identifier "uVar4") (< "<") (number_literal "0xfffff9e8")) () ")")) (compound_statement "{\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);\n                    uVar4 = uVar4 + 0x618;\n                  }" ({ "{") (expression_statement "pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);" (assignment_expression "pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10)" (identifier "pdVar8") (= "=") (cast_expression "(double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10)" (parenthesized_expression "(**(code **)(puVar36 + 0x304710))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x304710)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x304710)" (* "*") (cast_expression "(code **)(puVar36 + 0x304710)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x304710)" (( "(") (binary_expression "puVar36 + 0x304710" (identifier "puVar36") (+ "+") (number_literal "0x304710")) () ")"))))) () ")")) (argument_list "(pdVar8,uVar4 + 0xc30,0x10)" (( "(") (identifier "pdVar8") (, ",") (binary_expression "uVar4 + 0xc30" (identifier "uVar4") (+ "+") (number_literal "0xc30")) (, ",") (number_literal "0x10") () ")"))))) (; ";")) (expression_statement "uVar4 = uVar4 + 0x618;" (assignment_expression "uVar4 = uVar4 + 0x618" (identifier "uVar4") (= "=") (binary_expression "uVar4 + 0x618" (identifier "uVar4") (+ "+") (number_literal "0x618"))) (; ";")) (} "}")) (else_clause "else {\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }" (else "else") (compound_statement "{\n                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);\n                  }" ({ "{") (expression_statement "pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);" (assignment_expression "pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8)" (identifier "pdVar8") (= "=") (cast_expression "(double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar8)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x3042b0)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x3042b0)" (* "*") (cast_expression "(code **)(puVar36 + 0x3042b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3042b0)" (( "(") (binary_expression "puVar36 + 0x3042b0" (identifier "puVar36") (+ "+") (number_literal "0x3042b0")) () ")"))))) () ")")) (argument_list "(pdVar8)" (( "(") (identifier "pdVar8") () ")"))))) (; ";")) (} "}")))) (if_statement "if (pdVar7 == (double *)0x0) {\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }" (if "if") (parenthesized_expression "(pdVar7 == (double *)0x0)" (( "(") (binary_expression "pdVar7 == (double *)0x0" (identifier "pdVar7") (== "==") (cast_expression "(double *)0x0" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;\n                    pcVar37 = *(code **)(puVar36 + 0x3042b0);\nLAB_000a6660:\n                    (*pcVar37)(pdVar6);\n                    uVar26 = 0x1d98;\n                    goto LAB_000a5724;\n                  }" ({ "{") (if_statement "if (pdVar8 != (double *)0x0) goto LAB_000a664c;" (if "if") (parenthesized_expression "(pdVar8 != (double *)0x0)" (( "(") (binary_expression "pdVar8 != (double *)0x0" (identifier "pdVar8") (!= "!=") (cast_expression "(double *)0x0" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000a664c;" (goto "goto") (statement_identifier "LAB_000a664c") (; ";"))) (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042b0);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042b0)" (identifier "pcVar37") (= "=") (pointer_expression "*(code **)(puVar36 + 0x3042b0)" (* "*") (cast_expression "(code **)(puVar36 + 0x3042b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3042b0)" (( "(") (binary_expression "puVar36 + 0x3042b0" (identifier "puVar36") (+ "+") (number_literal "0x3042b0")) () ")"))))) (; ";")) (labeled_statement "LAB_000a6660:\n                    (*pcVar37)(pdVar6);" (statement_identifier "LAB_000a6660") (: ":") (expression_statement "(*pcVar37)(pdVar6);" (call_expression "(*pcVar37)(pdVar6)" (parenthesized_expression "(*pcVar37)" (( "(") (pointer_expression "*pcVar37" (* "*") (identifier "pcVar37")) () ")")) (argument_list "(pdVar6)" (( "(") (identifier "pdVar6") () ")"))) (; ";"))) (expression_statement "uVar26 = 0x1d98;" (assignment_expression "uVar26 = 0x1d98" (identifier "uVar26") (= "=") (number_literal "0x1d98")) (; ";")) (goto_statement "goto LAB_000a5724;" (goto "goto") (statement_identifier "LAB_000a5724") (; ";")) (} "}"))) (if_statement "if (pdVar8 == (double *)0x0) {\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }" (if "if") (parenthesized_expression "(pdVar8 == (double *)0x0)" (( "(") (binary_expression "pdVar8 == (double *)0x0" (identifier "pdVar8") (== "==") (cast_expression "(double *)0x0" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n                    goto LAB_000a665c;\n                  }" ({ "{") (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar7);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar7)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x3042b0)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x3042b0)" (* "*") (cast_expression "(code **)(puVar36 + 0x3042b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3042b0)" (( "(") (binary_expression "puVar36 + 0x3042b0" (identifier "puVar36") (+ "+") (number_literal "0x3042b0")) () ")"))))) () ")")) (argument_list "(pdVar7)" (( "(") (identifier "pdVar7") () ")"))) (; ";")) (goto_statement "goto LAB_000a665c;" (goto "goto") (statement_identifier "LAB_000a665c") (; ";")) (} "}"))) (} "}")))) (expression_statement "pdVar21 = pdVar7 + iVar35 * 2;" (assignment_expression "pdVar21 = pdVar7 + iVar35 * 2" (identifier "pdVar21") (= "=") (binary_expression "pdVar7 + iVar35 * 2" (identifier "pdVar7") (+ "+") (binary_expression "iVar35 * 2" (identifier "iVar35") (* "*") (number_literal "2")))) (; ";")) (expression_statement "*pdVar21 = dStack_250;" (assignment_expression "*pdVar21 = dStack_250" (pointer_expression "*pdVar21" (* "*") (identifier "pdVar21")) (= "=") (identifier "dStack_250")) (; ";")) (expression_statement "pdVar21[1] = dStack_248;" (assignment_expression "pdVar21[1] = dStack_248" (subscript_expression "pdVar21[1]" (identifier "pdVar21") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "dStack_248")) (; ";")) (if_statement "if (1 < (int)uVar30) {\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }" (if "if") (parenthesized_expression "(1 < (int)uVar30)" (( "(") (binary_expression "1 < (int)uVar30" (number_literal "1") (< "<") (cast_expression "(int)uVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar30"))) () ")")) (compound_statement "{\n                  dVar52 = dVar52 - dVar56;\n                  uVar14 = 1;\n                  do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);\n                }" ({ "{") (expression_statement "dVar52 = dVar52 - dVar56;" (assignment_expression "dVar52 = dVar52 - dVar56" (identifier "dVar52") (= "=") (binary_expression "dVar52 - dVar56" (identifier "dVar52") (- "-") (identifier "dVar56"))) (; ";")) (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" (identifier "uVar14") (= "=") (number_literal "1")) (; ";")) (do_statement "do {\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  } while (uVar34 != uVar30);" (do "do") (compound_statement "{\n                    uVar34 = uVar14 + 1;\n                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;\n                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);\n                    pcVar37 = *(code **)(puVar36 + 0x304ca8);\n                    pdVar21[2] = dVar42 * dVar62 + dVar57;\n                    uVar60 = (*pcVar37)(dVar59,uVar41);\n                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);\n                    pdVar21[3] = dVar42 * dVar62 + dVar58;\n                    uVar14 = uVar34;\n                    pdVar21 = pdVar21 + 2;\n                  }" ({ "{") (expression_statement "uVar34 = uVar14 + 1;" (assignment_expression "uVar34 = uVar14 + 1" (identifier "uVar34") (= "=") (binary_expression "uVar14 + 1" (identifier "uVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;" (assignment_expression "dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56" (identifier "dVar59") (= "=") (binary_expression "((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56" (binary_expression "((double)(int)uVar14 * dVar52) / (double)(int)uVar30" (parenthesized_expression "((double)(int)uVar14 * dVar52)" (( "(") (binary_expression "(double)(int)uVar14 * dVar52" (cast_expression "(double)(int)uVar14" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)uVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar14"))) (* "*") (identifier "dVar52")) () ")")) (/ "/") (cast_expression "(double)(int)uVar30" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(int)uVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar30")))) (+ "+") (identifier "dVar56"))) (; ";")) (expression_statement "uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);" (assignment_expression "uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41)" (identifier "uVar60") (= "=") (call_expression "(**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41)" (parenthesized_expression "(**(code **)(puVar36 + 0x304ca8))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x304ca8)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x304ca8)" (* "*") (cast_expression "(code **)(puVar36 + 0x304ca8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x304ca8)" (( "(") (binary_expression "puVar36 + 0x304ca8" (identifier "puVar36") (+ "+") (number_literal "0x304ca8")) () ")"))))) () ")")) (argument_list "(dVar59,uVar41)" (( "(") (identifier "dVar59") (, ",") (identifier "uVar41") () ")")))) (; ";")) (expression_statement "dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);" (assignment_expression "dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60)" (identifier "dVar62") (= "=") (cast_expression "(double)(**(code **)(puVar36 + 0x304608))(uVar60)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(puVar36 + 0x304608))(uVar60)" (parenthesized_expression "(**(code **)(puVar36 + 0x304608))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x304608)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x304608)" (* "*") (cast_expression "(code **)(puVar36 + 0x304608)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x304608)" (( "(") (binary_expression "puVar36 + 0x304608" (identifier "puVar36") (+ "+") (number_literal "0x304608")) () ")"))))) () ")")) (argument_list "(uVar60)" (( "(") (identifier "uVar60") () ")"))))) (; ";")) (expression_statement "pcVar37 = *(code **)(puVar36 + 0x304ca8);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x304ca8)" (identifier "pcVar37") (= "=") (pointer_expression "*(code **)(puVar36 + 0x304ca8)" (* "*") (cast_expression "(code **)(puVar36 + 0x304ca8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x304ca8)" (( "(") (binary_expression "puVar36 + 0x304ca8" (identifier "puVar36") (+ "+") (number_literal "0x304ca8")) () ")"))))) (; ";")) (expression_statement "pdVar21[2] = dVar42 * dVar62 + dVar57;" (assignment_expression "pdVar21[2] = dVar42 * dVar62 + dVar57" (subscript_expression "pdVar21[2]" (identifier "pdVar21") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "dVar42 * dVar62 + dVar57" (binary_expression "dVar42 * dVar62" (identifier "dVar42") (* "*") (identifier "dVar62")) (+ "+") (identifier "dVar57"))) (; ";")) (expression_statement "uVar60 = (*pcVar37)(dVar59,uVar41);" (assignment_expression "uVar60 = (*pcVar37)(dVar59,uVar41)" (identifier "uVar60") (= "=") (call_expression "(*pcVar37)(dVar59,uVar41)" (parenthesized_expression "(*pcVar37)" (( "(") (pointer_expression "*pcVar37" (* "*") (identifier "pcVar37")) () ")")) (argument_list "(dVar59,uVar41)" (( "(") (identifier "dVar59") (, ",") (identifier "uVar41") () ")")))) (; ";")) (expression_statement "dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);" (assignment_expression "dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60)" (identifier "dVar62") (= "=") (cast_expression "(double)(**(code **)(puVar36 + 0x304034))(uVar60)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(puVar36 + 0x304034))(uVar60)" (parenthesized_expression "(**(code **)(puVar36 + 0x304034))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x304034)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x304034)" (* "*") (cast_expression "(code **)(puVar36 + 0x304034)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x304034)" (( "(") (binary_expression "puVar36 + 0x304034" (identifier "puVar36") (+ "+") (number_literal "0x304034")) () ")"))))) () ")")) (argument_list "(uVar60)" (( "(") (identifier "uVar60") () ")"))))) (; ";")) (expression_statement "pdVar21[3] = dVar42 * dVar62 + dVar58;" (assignment_expression "pdVar21[3] = dVar42 * dVar62 + dVar58" (subscript_expression "pdVar21[3]" (identifier "pdVar21") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "dVar42 * dVar62 + dVar58" (binary_expression "dVar42 * dVar62" (identifier "dVar42") (* "*") (identifier "dVar62")) (+ "+") (identifier "dVar58"))) (; ";")) (expression_statement "uVar14 = uVar34;" (assignment_expression "uVar14 = uVar34" (identifier "uVar14") (= "=") (identifier "uVar34")) (; ";")) (expression_statement "pdVar21 = pdVar21 + 2;" (assignment_expression "pdVar21 = pdVar21 + 2" (identifier "pdVar21") (= "=") (binary_expression "pdVar21 + 2" (identifier "pdVar21") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar34 != uVar30)" (( "(") (binary_expression "uVar34 != uVar30" (identifier "uVar34") (!= "!=") (identifier "uVar30")) () ")")) (; ";")) (} "}"))) (expression_statement "*pdVar7 = dStack_288;" (assignment_expression "*pdVar7 = dStack_288" (pointer_expression "*pdVar7" (* "*") (identifier "pdVar7")) (= "=") (identifier "dStack_288")) (; ";")) (expression_statement "pdVar7[1] = dStack_280;" (assignment_expression "pdVar7[1] = dStack_280" (subscript_expression "pdVar7[1]" (identifier "pdVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "dStack_280")) (; ";")) (expression_statement "dStack_258 = dVar48;" (assignment_expression "dStack_258 = dVar48" (identifier "dStack_258") (= "=") (identifier "dVar48")) (; ";")) (expression_statement "dStack_260 = dVar49;" (assignment_expression "dStack_260 = dVar49" (identifier "dStack_260") (= "=") (identifier "dVar49")) (; ";")) (expression_statement "dVar56 = dStack_2a0;" (assignment_expression "dVar56 = dStack_2a0" (identifier "dVar56") (= "=") (identifier "dStack_2a0")) (; ";")) (expression_statement "dVar57 = dStack_2a8;" (assignment_expression "dVar57 = dStack_2a8" (identifier "dVar57") (= "=") (identifier "dStack_2a8")) (; ";")) (expression_statement "dVar59 = dStack_2b0;" (assignment_expression "dVar59 = dStack_2b0" (identifier "dVar59") (= "=") (identifier "dStack_2b0")) (; ";")) (expression_statement "dVar63 = dStack_2b8;" (assignment_expression "dVar63 = dStack_2b8" (identifier "dVar63") (= "=") (identifier "dStack_2b8")) (; ";")) (expression_statement "iVar33 = iVar9;" (assignment_expression "iVar33 = iVar9" (identifier "iVar33") (= "=") (identifier "iVar9")) (; ";")) (expression_statement "iVar35 = 1;" (assignment_expression "iVar35 = 1" (identifier "iVar35") (= "=") (number_literal "1")) (; ";")) (expression_statement "dVar52 = dVar54;" (assignment_expression "dVar52 = dVar54" (identifier "dVar52") (= "=") (identifier "dVar54")) (; ";")) (} "}")))) (} "}"))) (labeled_statement "joined_r0x000a5a50:\n            dStack_250 = dVar63;" (statement_identifier "joined_r0x000a5a50") (: ":") (expression_statement "dStack_250 = dVar63;" (assignment_expression "dStack_250 = dVar63" (identifier "dStack_250") (= "=") (identifier "dVar63")) (; ";"))) (expression_statement "dStack_248 = dVar59;" (assignment_expression "dStack_248 = dVar59" (identifier "dStack_248") (= "=") (identifier "dVar59")) (; ";")) (expression_statement "dStack_240 = dVar57;" (assignment_expression "dStack_240 = dVar57" (identifier "dStack_240") (= "=") (identifier "dVar57")) (; ";")) (expression_statement "dStack_238 = dVar56;" (assignment_expression "dStack_238 = dVar56" (identifier "dStack_238") (= "=") (identifier "dVar56")) (; ";")) (if_statement "if (iVar32 + 1 == iVar29) goto LAB_000a5a58;" (if "if") (parenthesized_expression "(iVar32 + 1 == iVar29)" (( "(") (binary_expression "iVar32 + 1 == iVar29" (binary_expression "iVar32 + 1" (identifier "iVar32") (+ "+") (number_literal "1")) (== "==") (identifier "iVar29")) () ")")) (goto_statement "goto LAB_000a5a58;" (goto "goto") (statement_identifier "LAB_000a5a58") (; ";"))) (expression_statement "pdVar11 = pdVar11 + 5;" (assignment_expression "pdVar11 = pdVar11 + 5" (identifier "pdVar11") (= "=") (binary_expression "pdVar11 + 5" (identifier "pdVar11") (+ "+") (number_literal "5"))) (; ";")) (expression_statement "iVar32 = iVar32 + 1;" (assignment_expression "iVar32 = iVar32 + 1" (identifier "iVar32") (= "=") (binary_expression "iVar32 + 1" (identifier "iVar32") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "dVar58 = pdVar6[iVar38 * 5];" (assignment_expression "dVar58 = pdVar6[iVar38 * 5]" (identifier "dVar58") (= "=") (subscript_expression "pdVar6[iVar38 * 5]" (identifier "pdVar6") ([ "[") (binary_expression "iVar38 * 5" (identifier "iVar38") (* "*") (number_literal "5")) (] "]"))) (; ";")) (expression_statement "dVar62 = (pdVar6 + iVar38 * 5)[1];" (assignment_expression "dVar62 = (pdVar6 + iVar38 * 5)[1]" (identifier "dVar62") (= "=") (subscript_expression "(pdVar6 + iVar38 * 5)[1]" (parenthesized_expression "(pdVar6 + iVar38 * 5)" (( "(") (binary_expression "pdVar6 + iVar38 * 5" (identifier "pdVar6") (+ "+") (binary_expression "iVar38 * 5" (identifier "iVar38") (* "*") (number_literal "5"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "iVar38 = 4;" (assignment_expression "iVar38 = 4" (identifier "iVar38") (= "=") (number_literal "4")) (; ";")) (expression_statement "iVar32 = 0x10;" (assignment_expression "iVar32 = 0x10" (identifier "iVar32") (= "=") (number_literal "0x10")) (; ";")) (expression_statement "iVar35 = 0x10;" (assignment_expression "iVar35 = 0x10" (identifier "iVar35") (= "=") (number_literal "0x10")) (; ";")) (expression_statement "iVar29 = 2;" (assignment_expression "iVar29 = 2" (identifier "iVar29") (= "=") (number_literal "2")) (; ";")) (goto_statement "goto LAB_000a5a70;" (goto "goto") (statement_identifier "LAB_000a5a70") (; ";")) (} "}"))) (expression_statement "bVar1 = iVar29 < 2;" (assignment_expression "bVar1 = iVar29 < 2" (identifier "bVar1") (= "=") (binary_expression "iVar29 < 2" (identifier "iVar29") (< "<") (number_literal "2"))) (; ";")) (expression_statement "iStack_188 = 0;" (assignment_expression "iStack_188 = 0" (identifier "iStack_188") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (expression_statement "*(undefined4 *)((int)pdVar7 + 0x14) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar7 + 0x14) = 0" (pointer_expression "*(undefined4 *)((int)pdVar7 + 0x14)" (* "*") (cast_expression "(undefined4 *)((int)pdVar7 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar7 + 0x14)" (( "(") (binary_expression "(int)pdVar7 + 0x14" (cast_expression "(int)pdVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar7")) (+ "+") (number_literal "0x14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (!bVar1) goto LAB_000a4fe8;" (if "if") (parenthesized_expression "(!bVar1)" (( "(") (unary_expression "!bVar1" (! "!") (identifier "bVar1")) () ")")) (goto_statement "goto LAB_000a4fe8;" (goto "goto") (statement_identifier "LAB_000a4fe8") (; ";"))) (labeled_statement "LAB_000a6124:\n      if (iVar29 != 1) {\n        iVar38 = 1;\n        dStack_258 = 0.0;\n        dStack_260 = 0.0;\n        goto LAB_000a5110;\n      }" (statement_identifier "LAB_000a6124") (: ":") (if_statement "if (iVar29 != 1) {\n        iVar38 = 1;\n        dStack_258 = 0.0;\n        dStack_260 = 0.0;\n        goto LAB_000a5110;\n      }" (if "if") (parenthesized_expression "(iVar29 != 1)" (( "(") (binary_expression "iVar29 != 1" (identifier "iVar29") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n        iVar38 = 1;\n        dStack_258 = 0.0;\n        dStack_260 = 0.0;\n        goto LAB_000a5110;\n      }" ({ "{") (expression_statement "iVar38 = 1;" (assignment_expression "iVar38 = 1" (identifier "iVar38") (= "=") (number_literal "1")) (; ";")) (expression_statement "dStack_258 = 0.0;" (assignment_expression "dStack_258 = 0.0" (identifier "dStack_258") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "dStack_260 = 0.0;" (assignment_expression "dStack_260 = 0.0" (identifier "dStack_260") (= "=") (number_literal "0.0")) (; ";")) (goto_statement "goto LAB_000a5110;" (goto "goto") (statement_identifier "LAB_000a5110") (; ";")) (} "}")))) (expression_statement "iVar38 = 1;" (assignment_expression "iVar38 = 1" (identifier "iVar38") (= "=") (number_literal "1")) (; ";")) (expression_statement "dStack_258 = 0.0;" (assignment_expression "dStack_258 = 0.0" (identifier "dStack_258") (= "=") (number_literal "0.0")) (; ";")) (expression_statement "iVar16 = *(int *)(param_2 + 0x244);" (assignment_expression "iVar16 = *(int *)(param_2 + 0x244)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(param_2 + 0x244)" (* "*") (cast_expression "(int *)(param_2 + 0x244)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x244)" (( "(") (binary_expression "param_2 + 0x244" (identifier "param_2") (+ "+") (number_literal "0x244")) () ")"))))) (; ";")) (expression_statement "dStack_260 = 0.0;" (assignment_expression "dStack_260 = 0.0" (identifier "dStack_260") (= "=") (number_literal "0.0")) (; ";")) (labeled_statement "joined_r0x000a50f8:\n      if (iVar16 == 2) {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n        if (!bVar2) {\n          iVar38 = iVar38 + -1;\n          goto LAB_000a5110;\n        }\n      }\n      else {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n      }" (statement_identifier "joined_r0x000a50f8") (: ":") (if_statement "if (iVar16 == 2) {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n        if (!bVar2) {\n          iVar38 = iVar38 + -1;\n          goto LAB_000a5110;\n        }\n      }\n      else {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n      }" (if "if") (parenthesized_expression "(iVar16 == 2)" (( "(") (binary_expression "iVar16 == 2" (identifier "iVar16") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n        if (!bVar2) {\n          iVar38 = iVar38 + -1;\n          goto LAB_000a5110;\n        }\n      }" ({ "{") (expression_statement "pcVar37 = *(code **)(puVar36 + 0x304644);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x304644)" (identifier "pcVar37") (= "=") (pointer_expression "*(code **)(puVar36 + 0x304644)" (* "*") (cast_expression "(code **)(puVar36 + 0x304644)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x304644)" (( "(") (binary_expression "puVar36 + 0x304644" (identifier "puVar36") (+ "+") (number_literal "0x304644")) () ")"))))) (; ";")) (if_statement "if (!bVar2) {\n          iVar38 = iVar38 + -1;\n          goto LAB_000a5110;\n        }" (if "if") (parenthesized_expression "(!bVar2)" (( "(") (unary_expression "!bVar2" (! "!") (identifier "bVar2")) () ")")) (compound_statement "{\n          iVar38 = iVar38 + -1;\n          goto LAB_000a5110;\n        }" ({ "{") (expression_statement "iVar38 = iVar38 + -1;" (assignment_expression "iVar38 = iVar38 + -1" (identifier "iVar38") (= "=") (binary_expression "iVar38 + -1" (identifier "iVar38") (+ "+") (number_literal "-1"))) (; ";")) (goto_statement "goto LAB_000a5110;" (goto "goto") (statement_identifier "LAB_000a5110") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n      }" (else "else") (compound_statement "{\n        pcVar37 = *(code **)(puVar36 + 0x304644);\n      }" ({ "{") (expression_statement "pcVar37 = *(code **)(puVar36 + 0x304644);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x304644)" (identifier "pcVar37") (= "=") (pointer_expression "*(code **)(puVar36 + 0x304644)" (* "*") (cast_expression "(code **)(puVar36 + 0x304644)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x304644)" (( "(") (binary_expression "puVar36 + 0x304644" (identifier "puVar36") (+ "+") (number_literal "0x304644")) () ")"))))) (; ";")) (} "}"))))) (expression_statement "puVar13 = (undefined4 *)(*pcVar37)(0x28);" (assignment_expression "puVar13 = (undefined4 *)(*pcVar37)(0x28)" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)(*pcVar37)(0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar37)(0x28)" (parenthesized_expression "(*pcVar37)" (( "(") (pointer_expression "*pcVar37" (* "*") (identifier "pcVar37")) () ")")) (argument_list "(0x28)" (( "(") (number_literal "0x28") () ")"))))) (; ";")) (expression_statement "pdVar7 = pdVar6;" (assignment_expression "pdVar7 = pdVar6" (identifier "pdVar7") (= "=") (identifier "pdVar6")) (; ";")) (expression_statement "puVar12 = puVar13;" (assignment_expression "puVar12 = puVar13" (identifier "puVar12") (= "=") (identifier "puVar13")) (; ";")) (do_statement "do {\n        puVar22 = puVar12;\n        pdVar8 = pdVar7;\n        pdVar7 = pdVar8 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar8 + 4);\n        uVar27 = *(undefined4 *)(pdVar8 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar8 + 0xc);\n        *puVar22 = *(undefined4 *)pdVar8;\n        puVar22[1] = uVar28;\n        puVar22[2] = uVar27;\n        puVar22[3] = uVar26;\n        puVar12 = puVar22 + 4;\n      } while (pdVar7 != pdVar6 + 4);" (do "do") (compound_statement "{\n        puVar22 = puVar12;\n        pdVar8 = pdVar7;\n        pdVar7 = pdVar8 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar8 + 4);\n        uVar27 = *(undefined4 *)(pdVar8 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar8 + 0xc);\n        *puVar22 = *(undefined4 *)pdVar8;\n        puVar22[1] = uVar28;\n        puVar22[2] = uVar27;\n        puVar22[3] = uVar26;\n        puVar12 = puVar22 + 4;\n      }" ({ "{") (expression_statement "puVar22 = puVar12;" (assignment_expression "puVar22 = puVar12" (identifier "puVar22") (= "=") (identifier "puVar12")) (; ";")) (expression_statement "pdVar8 = pdVar7;" (assignment_expression "pdVar8 = pdVar7" (identifier "pdVar8") (= "=") (identifier "pdVar7")) (; ";")) (expression_statement "pdVar7 = pdVar8 + 2;" (assignment_expression "pdVar7 = pdVar8 + 2" (identifier "pdVar7") (= "=") (binary_expression "pdVar8 + 2" (identifier "pdVar8") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "uVar28 = *(undefined4 *)((int)pdVar8 + 4);" (assignment_expression "uVar28 = *(undefined4 *)((int)pdVar8 + 4)" (identifier "uVar28") (= "=") (pointer_expression "*(undefined4 *)((int)pdVar8 + 4)" (* "*") (cast_expression "(undefined4 *)((int)pdVar8 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar8 + 4)" (( "(") (binary_expression "(int)pdVar8 + 4" (cast_expression "(int)pdVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar8")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar27 = *(undefined4 *)(pdVar8 + 1);" (assignment_expression "uVar27 = *(undefined4 *)(pdVar8 + 1)" (identifier "uVar27") (= "=") (pointer_expression "*(undefined4 *)(pdVar8 + 1)" (* "*") (cast_expression "(undefined4 *)(pdVar8 + 1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar8 + 1)" (( "(") (binary_expression "pdVar8 + 1" (identifier "pdVar8") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar8 + 0xc);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar8 + 0xc)" (identifier "uVar26") (= "=") (pointer_expression "*(undefined4 *)((int)pdVar8 + 0xc)" (* "*") (cast_expression "(undefined4 *)((int)pdVar8 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar8 + 0xc)" (( "(") (binary_expression "(int)pdVar8 + 0xc" (cast_expression "(int)pdVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar8")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*puVar22 = *(undefined4 *)pdVar8;" (assignment_expression "*puVar22 = *(undefined4 *)pdVar8" (pointer_expression "*puVar22" (* "*") (identifier "puVar22")) (= "=") (pointer_expression "*(undefined4 *)pdVar8" (* "*") (cast_expression "(undefined4 *)pdVar8" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pdVar8")))) (; ";")) (expression_statement "puVar22[1] = uVar28;" (assignment_expression "puVar22[1] = uVar28" (subscript_expression "puVar22[1]" (identifier "puVar22") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar28")) (; ";")) (expression_statement "puVar22[2] = uVar27;" (assignment_expression "puVar22[2] = uVar27" (subscript_expression "puVar22[2]" (identifier "puVar22") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar27")) (; ";")) (expression_statement "puVar22[3] = uVar26;" (assignment_expression "puVar22[3] = uVar26" (subscript_expression "puVar22[3]" (identifier "puVar22") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar26")) (; ";")) (expression_statement "puVar12 = puVar22 + 4;" (assignment_expression "puVar12 = puVar22 + 4" (identifier "puVar12") (= "=") (binary_expression "puVar22 + 4" (identifier "puVar22") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pdVar7 != pdVar6 + 4)" (( "(") (binary_expression "pdVar7 != pdVar6 + 4" (identifier "pdVar7") (!= "!=") (binary_expression "pdVar6 + 4" (identifier "pdVar6") (+ "+") (number_literal "4"))) () ")")) (; ";")) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar8 + 0x14);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar8 + 0x14)" (identifier "uVar26") (= "=") (pointer_expression "*(undefined4 *)((int)pdVar8 + 0x14)" (* "*") (cast_expression "(undefined4 *)((int)pdVar8 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar8 + 0x14)" (( "(") (binary_expression "(int)pdVar8 + 0x14" (cast_expression "(int)pdVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar8")) (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042b0);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042b0)" (identifier "pcVar37") (= "=") (pointer_expression "*(code **)(puVar36 + 0x3042b0)" (* "*") (cast_expression "(code **)(puVar36 + 0x3042b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3042b0)" (( "(") (binary_expression "puVar36 + 0x3042b0" (identifier "puVar36") (+ "+") (number_literal "0x3042b0")) () ")"))))) (; ";")) (expression_statement "puVar22[4] = *(undefined4 *)pdVar7;" (assignment_expression "puVar22[4] = *(undefined4 *)pdVar7" (subscript_expression "puVar22[4]" (identifier "puVar22") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*(undefined4 *)pdVar7" (* "*") (cast_expression "(undefined4 *)pdVar7" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pdVar7")))) (; ";")) (expression_statement "puVar22[5] = uVar26;" (assignment_expression "puVar22[5] = uVar26" (subscript_expression "puVar22[5]" (identifier "puVar22") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar26")) (; ";")) (expression_statement "puVar13[4] = 0;" (assignment_expression "puVar13[4] = 0" (subscript_expression "puVar13[4]" (identifier "puVar13") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "(*pcVar37)(pdVar6);" (call_expression "(*pcVar37)(pdVar6)" (parenthesized_expression "(*pcVar37)" (( "(") (pointer_expression "*pcVar37" (* "*") (identifier "pcVar37")) () ")")) (argument_list "(pdVar6)" (( "(") (identifier "pdVar6") () ")"))) (; ";")) (goto_statement "goto LAB_000a61cc;" (goto "goto") (statement_identifier "LAB_000a61cc") (; ";")) (} "}"))) (expression_statement "uVar26 = 0x1c57;" (assignment_expression "uVar26 = 0x1c57" (identifier "uVar26") (= "=") (number_literal "0x1c57")) (; ";")) (labeled_statement "LAB_000a5724:\n    (**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               uVar26,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);" (statement_identifier "LAB_000a5724") (: ":") (expression_statement "(**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               uVar26,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);" (call_expression "(**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               uVar26,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688)" (parenthesized_expression "(**(code **)(puVar36 + 0x304210))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x304210)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x304210)" (* "*") (cast_expression "(code **)(puVar36 + 0x304210)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x304210)" (( "(") (binary_expression "puVar36 + 0x304210" (identifier "puVar36") (+ "+") (number_literal "0x304210")) () ")"))))) () ")")) (argument_list "(param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               uVar26,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688)" (( "(") (identifier "param_4") (, ",") (binary_expression "*(int *)(puVar36 + 0x303bd8) + 0x38b0" (pointer_expression "*(int *)(puVar36 + 0x303bd8)" (* "*") (cast_expression "(int *)(puVar36 + 0x303bd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x303bd8)" (( "(") (binary_expression "puVar36 + 0x303bd8" (identifier "puVar36") (+ "+") (number_literal "0x303bd8")) () ")")))) (+ "+") (number_literal "0x38b0")) (, ",") (binary_expression "*(int *)(puVar36 + 0x303bd8) + 0x45c8" (pointer_expression "*(int *)(puVar36 + 0x303bd8)" (* "*") (cast_expression "(int *)(puVar36 + 0x303bd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x303bd8)" (( "(") (binary_expression "puVar36 + 0x303bd8" (identifier "puVar36") (+ "+") (number_literal "0x303bd8")) () ")")))) (+ "+") (number_literal "0x45c8")) (, ",") (identifier "uVar26") (, ",") (number_literal "400") (, ",") (binary_expression "*(int *)(puVar36 + 0x303bd0) + 0x16f8" (pointer_expression "*(int *)(puVar36 + 0x303bd0)" (* "*") (cast_expression "(int *)(puVar36 + 0x303bd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x303bd0)" (( "(") (binary_expression "puVar36 + 0x303bd0" (identifier "puVar36") (+ "+") (number_literal "0x303bd0")) () ")")))) (+ "+") (number_literal "0x16f8")) (, ",") (binary_expression "*(int *)(puVar36 + 0x303bd0) + 0x3e28" (pointer_expression "*(int *)(puVar36 + 0x303bd0)" (* "*") (cast_expression "(int *)(puVar36 + 0x303bd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x303bd0)" (( "(") (binary_expression "puVar36 + 0x303bd0" (identifier "puVar36") (+ "+") (number_literal "0x303bd0")) () ")")))) (+ "+") (number_literal "0x3e28")) (, ",") (binary_expression "*(int *)(puVar36 + 0x303bd4) + -0x3688" (pointer_expression "*(int *)(puVar36 + 0x303bd4)" (* "*") (cast_expression "(int *)(puVar36 + 0x303bd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x303bd4)" (( "(") (binary_expression "puVar36 + 0x303bd4" (identifier "puVar36") (+ "+") (number_literal "0x303bd4")) () ")")))) (+ "+") (number_literal "-0x3688")) () ")"))) (; ";"))) (expression_statement "uStack_1d0 = 0;" (assignment_expression "uStack_1d0 = 0" (identifier "uStack_1d0") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_000a5774;" (goto "goto") (statement_identifier "LAB_000a5774") (; ";")) (} "}"))) (expression_statement "uStack_1d0 = 1;" (assignment_expression "uStack_1d0 = 1" (identifier "uStack_1d0") (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_000a5774:\n  pcVar37 = *(code **)(puVar36 + 0x3042d8);" (statement_identifier "LAB_000a5774") (: ":") (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042d8);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042d8)" (identifier "pcVar37") (= "=") (pointer_expression "*(code **)(puVar36 + 0x3042d8)" (* "*") (cast_expression "(code **)(puVar36 + 0x3042d8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3042d8)" (( "(") (binary_expression "puVar36 + 0x3042d8" (identifier "puVar36") (+ "+") (number_literal "0x3042d8")) () ")"))))) (; ";"))) (labeled_statement "LAB_000a5778:\n  (*pcVar37)(iVar5);" (statement_identifier "LAB_000a5778") (: ":") (expression_statement "(*pcVar37)(iVar5);" (call_expression "(*pcVar37)(iVar5)" (parenthesized_expression "(*pcVar37)" (( "(") (pointer_expression "*pcVar37" (* "*") (identifier "pcVar37")) () ")")) (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")"))) (; ";"))) (if_statement "if (*(int *)(iVar17 + 0x3350) != 0) {\n    (**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x16b4,*(int *)(puVar36 + 0x303bd8) + 0x3df8);\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar17 + 0x3350) != 0)" (( "(") (binary_expression "*(int *)(iVar17 + 0x3350) != 0" (pointer_expression "*(int *)(iVar17 + 0x3350)" (* "*") (cast_expression "(int *)(iVar17 + 0x3350)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x3350)" (( "(") (binary_expression "iVar17 + 0x3350" (identifier "iVar17") (+ "+") (number_literal "0x3350")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    (**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x16b4,*(int *)(puVar36 + 0x303bd8) + 0x3df8);\n  }" ({ "{") (expression_statement "(**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x16b4,*(int *)(puVar36 + 0x303bd8) + 0x3df8);" (call_expression "(**(code **)(puVar36 + 0x3044d0))\n              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x16b4,*(int *)(puVar36 + 0x303bd8) + 0x3df8)" (parenthesized_expression "(**(code **)(puVar36 + 0x3044d0))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x3044d0)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x3044d0)" (* "*") (cast_expression "(code **)(puVar36 + 0x3044d0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3044d0)" (( "(") (binary_expression "puVar36 + 0x3044d0" (identifier "puVar36") (+ "+") (number_literal "0x3044d0")) () ")"))))) () ")")) (argument_list "(0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,\n               0x16b4,*(int *)(puVar36 + 0x303bd8) + 0x3df8)" (( "(") (number_literal "0x80") (, ",") (binary_expression "*(int *)(puVar36 + 0x303bd8) + 0x38b0" (pointer_expression "*(int *)(puVar36 + 0x303bd8)" (* "*") (cast_expression "(int *)(puVar36 + 0x303bd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x303bd8)" (( "(") (binary_expression "puVar36 + 0x303bd8" (identifier "puVar36") (+ "+") (number_literal "0x303bd8")) () ")")))) (+ "+") (number_literal "0x38b0")) (, ",") (binary_expression "*(int *)(puVar36 + 0x303bd8) + 0x45dc" (pointer_expression "*(int *)(puVar36 + 0x303bd8)" (* "*") (cast_expression "(int *)(puVar36 + 0x303bd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x303bd8)" (( "(") (binary_expression "puVar36 + 0x303bd8" (identifier "puVar36") (+ "+") (number_literal "0x303bd8")) () ")")))) (+ "+") (number_literal "0x45dc")) (, ",") (number_literal "0x16b4") (, ",") (binary_expression "*(int *)(puVar36 + 0x303bd8) + 0x3df8" (pointer_expression "*(int *)(puVar36 + 0x303bd8)" (* "*") (cast_expression "(int *)(puVar36 + 0x303bd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x303bd8)" (( "(") (binary_expression "puVar36 + 0x303bd8" (identifier "puVar36") (+ "+") (number_literal "0x303bd8")) () ")")))) (+ "+") (number_literal "0x3df8")) () ")"))) (; ";")) (} "}"))) (return_statement "return uStack_1d0;" (return "return") (identifier "uStack_1d0") (; ";")) (labeled_statement "LAB_000a5a58:\n  iVar29 = iVar35 + 1;" (statement_identifier "LAB_000a5a58") (: ":") (expression_statement "iVar29 = iVar35 + 1;" (assignment_expression "iVar29 = iVar35 + 1" (identifier "iVar29") (= "=") (binary_expression "iVar35 + 1" (identifier "iVar35") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "iVar35 = iVar35 << 4;" (assignment_expression "iVar35 = iVar35 << 4" (identifier "iVar35") (= "=") (binary_expression "iVar35 << 4" (identifier "iVar35") (<< "<<") (number_literal "4"))) (; ";")) (expression_statement "iVar32 = iVar33 << 4;" (assignment_expression "iVar32 = iVar33 << 4" (identifier "iVar32") (= "=") (binary_expression "iVar33 << 4" (identifier "iVar33") (<< "<<") (number_literal "4"))) (; ";")) (expression_statement "iVar38 = iVar33 + 1 + iVar29;" (assignment_expression "iVar38 = iVar33 + 1 + iVar29" (identifier "iVar38") (= "=") (binary_expression "iVar33 + 1 + iVar29" (binary_expression "iVar33 + 1" (identifier "iVar33") (+ "+") (number_literal "1")) (+ "+") (identifier "iVar29"))) (; ";")) (labeled_statement "LAB_000a5a70:\n  pcVar37 = *(code **)(puVar36 + 0x3047fc);" (statement_identifier "LAB_000a5a70") (: ":") (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3047fc);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3047fc)" (identifier "pcVar37") (= "=") (pointer_expression "*(code **)(puVar36 + 0x3047fc)" (* "*") (cast_expression "(code **)(puVar36 + 0x3047fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3047fc)" (( "(") (binary_expression "puVar36 + 0x3047fc" (identifier "puVar36") (+ "+") (number_literal "0x3047fc")) () ")"))))) (; ";"))) (expression_statement "iVar38 = iStack_188 * 2 + iVar38;" (assignment_expression "iVar38 = iStack_188 * 2 + iVar38" (identifier "iVar38") (= "=") (binary_expression "iStack_188 * 2 + iVar38" (binary_expression "iStack_188 * 2" (identifier "iStack_188") (* "*") (number_literal "2")) (+ "+") (identifier "iVar38"))) (; ";")) (expression_statement "*(double *)((int)pdVar7 + iVar35) = dStack_250;" (assignment_expression "*(double *)((int)pdVar7 + iVar35) = dStack_250" (pointer_expression "*(double *)((int)pdVar7 + iVar35)" (* "*") (cast_expression "(double *)((int)pdVar7 + iVar35)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar7 + iVar35)" (( "(") (binary_expression "(int)pdVar7 + iVar35" (cast_expression "(int)pdVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar7")) (+ "+") (identifier "iVar35")) () ")")))) (= "=") (identifier "dStack_250")) (; ";")) (expression_statement "((double *)((int)pdVar7 + iVar35))[1] = dStack_248;" (assignment_expression "((double *)((int)pdVar7 + iVar35))[1] = dStack_248" (subscript_expression "((double *)((int)pdVar7 + iVar35))[1]" (parenthesized_expression "((double *)((int)pdVar7 + iVar35))" (( "(") (cast_expression "(double *)((int)pdVar7 + iVar35)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar7 + iVar35)" (( "(") (binary_expression "(int)pdVar7 + iVar35" (cast_expression "(int)pdVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar7")) (+ "+") (identifier "iVar35")) () ")"))) () ")")) ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "dStack_248")) (; ";")) (expression_statement "*(double *)((int)pdVar8 + iVar32) = dStack_240;" (assignment_expression "*(double *)((int)pdVar8 + iVar32) = dStack_240" (pointer_expression "*(double *)((int)pdVar8 + iVar32)" (* "*") (cast_expression "(double *)((int)pdVar8 + iVar32)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar8 + iVar32)" (( "(") (binary_expression "(int)pdVar8 + iVar32" (cast_expression "(int)pdVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar8")) (+ "+") (identifier "iVar32")) () ")")))) (= "=") (identifier "dStack_240")) (; ";")) (expression_statement "((double *)((int)pdVar8 + iVar32))[1] = dStack_238;" (assignment_expression "((double *)((int)pdVar8 + iVar32))[1] = dStack_238" (subscript_expression "((double *)((int)pdVar8 + iVar32))[1]" (parenthesized_expression "((double *)((int)pdVar8 + iVar32))" (( "(") (cast_expression "(double *)((int)pdVar8 + iVar32)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar8 + iVar32)" (( "(") (binary_expression "(int)pdVar8 + iVar32" (cast_expression "(int)pdVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar8")) (+ "+") (identifier "iVar32")) () ")"))) () ")")) ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "dStack_238")) (; ";")) (expression_statement "puVar13 = (undefined4 *)(*pcVar37)(iVar38 + 2,0x28);" (assignment_expression "puVar13 = (undefined4 *)(*pcVar37)(iVar38 + 2,0x28)" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)(*pcVar37)(iVar38 + 2,0x28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar37)(iVar38 + 2,0x28)" (parenthesized_expression "(*pcVar37)" (( "(") (pointer_expression "*pcVar37" (* "*") (identifier "pcVar37")) () ")")) (argument_list "(iVar38 + 2,0x28)" (( "(") (binary_expression "iVar38 + 2" (identifier "iVar38") (+ "+") (number_literal "2")) (, ",") (number_literal "0x28") () ")"))))) (; ";")) (if_statement "if (puVar13 == (undefined4 *)0x0) {\n    (**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               0x1dbc,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n    uStack_1d0 = 0;\n    goto LAB_000a5774;\n  }" (if "if") (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar13 == (undefined4 *)0x0" (identifier "puVar13") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    (**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               0x1dbc,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar7);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar8);\n    (**(code **)(puVar36 + 0x3042b0))(pdVar6);\n    uStack_1d0 = 0;\n    goto LAB_000a5774;\n  }" ({ "{") (expression_statement "(**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               0x1dbc,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);" (call_expression "(**(code **)(puVar36 + 0x304210))\n              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               0x1dbc,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688)" (parenthesized_expression "(**(code **)(puVar36 + 0x304210))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x304210)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x304210)" (* "*") (cast_expression "(code **)(puVar36 + 0x304210)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x304210)" (( "(") (binary_expression "puVar36 + 0x304210" (identifier "puVar36") (+ "+") (number_literal "0x304210")) () ")"))))) () ")")) (argument_list "(param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,\n               0x1dbc,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,\n               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688)" (( "(") (identifier "param_4") (, ",") (binary_expression "*(int *)(puVar36 + 0x303bd8) + 0x38b0" (pointer_expression "*(int *)(puVar36 + 0x303bd8)" (* "*") (cast_expression "(int *)(puVar36 + 0x303bd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x303bd8)" (( "(") (binary_expression "puVar36 + 0x303bd8" (identifier "puVar36") (+ "+") (number_literal "0x303bd8")) () ")")))) (+ "+") (number_literal "0x38b0")) (, ",") (binary_expression "*(int *)(puVar36 + 0x303bd8) + 0x45c8" (pointer_expression "*(int *)(puVar36 + 0x303bd8)" (* "*") (cast_expression "(int *)(puVar36 + 0x303bd8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x303bd8)" (( "(") (binary_expression "puVar36 + 0x303bd8" (identifier "puVar36") (+ "+") (number_literal "0x303bd8")) () ")")))) (+ "+") (number_literal "0x45c8")) (, ",") (number_literal "0x1dbc") (, ",") (number_literal "400") (, ",") (binary_expression "*(int *)(puVar36 + 0x303bd0) + 0x16f8" (pointer_expression "*(int *)(puVar36 + 0x303bd0)" (* "*") (cast_expression "(int *)(puVar36 + 0x303bd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x303bd0)" (( "(") (binary_expression "puVar36 + 0x303bd0" (identifier "puVar36") (+ "+") (number_literal "0x303bd0")) () ")")))) (+ "+") (number_literal "0x16f8")) (, ",") (binary_expression "*(int *)(puVar36 + 0x303bd0) + 0x3e28" (pointer_expression "*(int *)(puVar36 + 0x303bd0)" (* "*") (cast_expression "(int *)(puVar36 + 0x303bd0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x303bd0)" (( "(") (binary_expression "puVar36 + 0x303bd0" (identifier "puVar36") (+ "+") (number_literal "0x303bd0")) () ")")))) (+ "+") (number_literal "0x3e28")) (, ",") (binary_expression "*(int *)(puVar36 + 0x303bd4) + -0x3688" (pointer_expression "*(int *)(puVar36 + 0x303bd4)" (* "*") (cast_expression "(int *)(puVar36 + 0x303bd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar36 + 0x303bd4)" (( "(") (binary_expression "puVar36 + 0x303bd4" (identifier "puVar36") (+ "+") (number_literal "0x303bd4")) () ")")))) (+ "+") (number_literal "-0x3688")) () ")"))) (; ";")) (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar7);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar7)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x3042b0)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x3042b0)" (* "*") (cast_expression "(code **)(puVar36 + 0x3042b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3042b0)" (( "(") (binary_expression "puVar36 + 0x3042b0" (identifier "puVar36") (+ "+") (number_literal "0x3042b0")) () ")"))))) () ")")) (argument_list "(pdVar7)" (( "(") (identifier "pdVar7") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar8);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar8)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x3042b0)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x3042b0)" (* "*") (cast_expression "(code **)(puVar36 + 0x3042b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3042b0)" (( "(") (binary_expression "puVar36 + 0x3042b0" (identifier "puVar36") (+ "+") (number_literal "0x3042b0")) () ")"))))) () ")")) (argument_list "(pdVar8)" (( "(") (identifier "pdVar8") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar6);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar6)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x3042b0)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x3042b0)" (* "*") (cast_expression "(code **)(puVar36 + 0x3042b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3042b0)" (( "(") (binary_expression "puVar36 + 0x3042b0" (identifier "puVar36") (+ "+") (number_literal "0x3042b0")) () ")"))))) () ")")) (argument_list "(pdVar6)" (( "(") (identifier "pdVar6") () ")"))) (; ";")) (expression_statement "uStack_1d0 = 0;" (assignment_expression "uStack_1d0 = 0" (identifier "uStack_1d0") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_000a5774;" (goto "goto") (statement_identifier "LAB_000a5774") (; ";")) (} "}"))) (expression_statement "pdVar31 = pdVar6 + 4;" (assignment_expression "pdVar31 = pdVar6 + 4" (identifier "pdVar31") (= "=") (binary_expression "pdVar6 + 4" (identifier "pdVar6") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "pdVar11 = pdVar6;" (assignment_expression "pdVar11 = pdVar6" (identifier "pdVar11") (= "=") (identifier "pdVar6")) (; ";")) (expression_statement "puVar12 = puVar13;" (assignment_expression "puVar12 = puVar13" (identifier "puVar12") (= "=") (identifier "puVar13")) (; ";")) (expression_statement "pdVar21 = pdVar7;" (assignment_expression "pdVar21 = pdVar7" (identifier "pdVar21") (= "=") (identifier "pdVar7")) (; ";")) (expression_statement "puVar22 = puVar13;" (assignment_expression "puVar22 = puVar13" (identifier "puVar22") (= "=") (identifier "puVar13")) (; ";")) (do_statement "do {\n    do {\n      puVar23 = puVar12;\n      pdVar10 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar10;\n      puVar12 = puVar23 + 4;\n    } while (pdVar10 != pdVar31);\n    pdVar10 = pdVar21 + 2;\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar23[4] = *(undefined4 *)pdVar31;\n    puVar23[5] = uVar26;\n    uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n    uVar27 = *(undefined4 *)(pdVar21 + 1);\n    uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n    *puVar22 = *(undefined4 *)pdVar21;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    pdVar11 = pdVar6;\n    puVar12 = puVar22 + 10;\n    pdVar21 = pdVar10;\n    puVar22 = puVar22 + 10;\n  } while (pdVar7 + iVar29 * 2 != pdVar10);" (do "do") (compound_statement "{\n    do {\n      puVar23 = puVar12;\n      pdVar10 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar10;\n      puVar12 = puVar23 + 4;\n    } while (pdVar10 != pdVar31);\n    pdVar10 = pdVar21 + 2;\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar23[4] = *(undefined4 *)pdVar31;\n    puVar23[5] = uVar26;\n    uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n    uVar27 = *(undefined4 *)(pdVar21 + 1);\n    uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n    *puVar22 = *(undefined4 *)pdVar21;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    pdVar11 = pdVar6;\n    puVar12 = puVar22 + 10;\n    pdVar21 = pdVar10;\n    puVar22 = puVar22 + 10;\n  }" ({ "{") (do_statement "do {\n      puVar23 = puVar12;\n      pdVar10 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar10;\n      puVar12 = puVar23 + 4;\n    } while (pdVar10 != pdVar31);" (do "do") (compound_statement "{\n      puVar23 = puVar12;\n      pdVar10 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar10;\n      puVar12 = puVar23 + 4;\n    }" ({ "{") (expression_statement "puVar23 = puVar12;" (assignment_expression "puVar23 = puVar12" (identifier "puVar23") (= "=") (identifier "puVar12")) (; ";")) (expression_statement "pdVar10 = pdVar11 + 2;" (assignment_expression "pdVar10 = pdVar11 + 2" (identifier "pdVar10") (= "=") (binary_expression "pdVar11 + 2" (identifier "pdVar11") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "uVar28 = *(undefined4 *)((int)pdVar11 + 4);" (assignment_expression "uVar28 = *(undefined4 *)((int)pdVar11 + 4)" (identifier "uVar28") (= "=") (pointer_expression "*(undefined4 *)((int)pdVar11 + 4)" (* "*") (cast_expression "(undefined4 *)((int)pdVar11 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar11 + 4)" (( "(") (binary_expression "(int)pdVar11 + 4" (cast_expression "(int)pdVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar11")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar27 = *(undefined4 *)(pdVar11 + 1);" (assignment_expression "uVar27 = *(undefined4 *)(pdVar11 + 1)" (identifier "uVar27") (= "=") (pointer_expression "*(undefined4 *)(pdVar11 + 1)" (* "*") (cast_expression "(undefined4 *)(pdVar11 + 1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar11 + 1)" (( "(") (binary_expression "pdVar11 + 1" (identifier "pdVar11") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar11 + 0xc)" (identifier "uVar26") (= "=") (pointer_expression "*(undefined4 *)((int)pdVar11 + 0xc)" (* "*") (cast_expression "(undefined4 *)((int)pdVar11 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar11 + 0xc)" (( "(") (binary_expression "(int)pdVar11 + 0xc" (cast_expression "(int)pdVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar11")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*puVar23 = *(undefined4 *)pdVar11;" (assignment_expression "*puVar23 = *(undefined4 *)pdVar11" (pointer_expression "*puVar23" (* "*") (identifier "puVar23")) (= "=") (pointer_expression "*(undefined4 *)pdVar11" (* "*") (cast_expression "(undefined4 *)pdVar11" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pdVar11")))) (; ";")) (expression_statement "puVar23[1] = uVar28;" (assignment_expression "puVar23[1] = uVar28" (subscript_expression "puVar23[1]" (identifier "puVar23") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar28")) (; ";")) (expression_statement "puVar23[2] = uVar27;" (assignment_expression "puVar23[2] = uVar27" (subscript_expression "puVar23[2]" (identifier "puVar23") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar27")) (; ";")) (expression_statement "puVar23[3] = uVar26;" (assignment_expression "puVar23[3] = uVar26" (subscript_expression "puVar23[3]" (identifier "puVar23") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar26")) (; ";")) (expression_statement "pdVar11 = pdVar10;" (assignment_expression "pdVar11 = pdVar10" (identifier "pdVar11") (= "=") (identifier "pdVar10")) (; ";")) (expression_statement "puVar12 = puVar23 + 4;" (assignment_expression "puVar12 = puVar23 + 4" (identifier "puVar12") (= "=") (binary_expression "puVar23 + 4" (identifier "puVar23") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pdVar10 != pdVar31)" (( "(") (binary_expression "pdVar10 != pdVar31" (identifier "pdVar10") (!= "!=") (identifier "pdVar31")) () ")")) (; ";")) (expression_statement "pdVar10 = pdVar21 + 2;" (assignment_expression "pdVar10 = pdVar21 + 2" (identifier "pdVar10") (= "=") (binary_expression "pdVar21 + 2" (identifier "pdVar21") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar6 + 0x24)" (identifier "uVar26") (= "=") (pointer_expression "*(undefined4 *)((int)pdVar6 + 0x24)" (* "*") (cast_expression "(undefined4 *)((int)pdVar6 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar6 + 0x24)" (( "(") (binary_expression "(int)pdVar6 + 0x24" (cast_expression "(int)pdVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar6")) (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "puVar23[4] = *(undefined4 *)pdVar31;" (assignment_expression "puVar23[4] = *(undefined4 *)pdVar31" (subscript_expression "puVar23[4]" (identifier "puVar23") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*(undefined4 *)pdVar31" (* "*") (cast_expression "(undefined4 *)pdVar31" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pdVar31")))) (; ";")) (expression_statement "puVar23[5] = uVar26;" (assignment_expression "puVar23[5] = uVar26" (subscript_expression "puVar23[5]" (identifier "puVar23") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar26")) (; ";")) (expression_statement "uVar28 = *(undefined4 *)((int)pdVar21 + 4);" (assignment_expression "uVar28 = *(undefined4 *)((int)pdVar21 + 4)" (identifier "uVar28") (= "=") (pointer_expression "*(undefined4 *)((int)pdVar21 + 4)" (* "*") (cast_expression "(undefined4 *)((int)pdVar21 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar21 + 4)" (( "(") (binary_expression "(int)pdVar21 + 4" (cast_expression "(int)pdVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar21")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar27 = *(undefined4 *)(pdVar21 + 1);" (assignment_expression "uVar27 = *(undefined4 *)(pdVar21 + 1)" (identifier "uVar27") (= "=") (pointer_expression "*(undefined4 *)(pdVar21 + 1)" (* "*") (cast_expression "(undefined4 *)(pdVar21 + 1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar21 + 1)" (( "(") (binary_expression "pdVar21 + 1" (identifier "pdVar21") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar21 + 0xc)" (identifier "uVar26") (= "=") (pointer_expression "*(undefined4 *)((int)pdVar21 + 0xc)" (* "*") (cast_expression "(undefined4 *)((int)pdVar21 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar21 + 0xc)" (( "(") (binary_expression "(int)pdVar21 + 0xc" (cast_expression "(int)pdVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar21")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*puVar22 = *(undefined4 *)pdVar21;" (assignment_expression "*puVar22 = *(undefined4 *)pdVar21" (pointer_expression "*puVar22" (* "*") (identifier "puVar22")) (= "=") (pointer_expression "*(undefined4 *)pdVar21" (* "*") (cast_expression "(undefined4 *)pdVar21" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pdVar21")))) (; ";")) (expression_statement "puVar22[1] = uVar28;" (assignment_expression "puVar22[1] = uVar28" (subscript_expression "puVar22[1]" (identifier "puVar22") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar28")) (; ";")) (expression_statement "puVar22[2] = uVar27;" (assignment_expression "puVar22[2] = uVar27" (subscript_expression "puVar22[2]" (identifier "puVar22") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar27")) (; ";")) (expression_statement "puVar22[3] = uVar26;" (assignment_expression "puVar22[3] = uVar26" (subscript_expression "puVar22[3]" (identifier "puVar22") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar26")) (; ";")) (expression_statement "pdVar11 = pdVar6;" (assignment_expression "pdVar11 = pdVar6" (identifier "pdVar11") (= "=") (identifier "pdVar6")) (; ";")) (expression_statement "puVar12 = puVar22 + 10;" (assignment_expression "puVar12 = puVar22 + 10" (identifier "puVar12") (= "=") (binary_expression "puVar22 + 10" (identifier "puVar22") (+ "+") (number_literal "10"))) (; ";")) (expression_statement "pdVar21 = pdVar10;" (assignment_expression "pdVar21 = pdVar10" (identifier "pdVar21") (= "=") (identifier "pdVar10")) (; ";")) (expression_statement "puVar22 = puVar22 + 10;" (assignment_expression "puVar22 = puVar22 + 10" (identifier "puVar22") (= "=") (binary_expression "puVar22 + 10" (identifier "puVar22") (+ "+") (number_literal "10"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pdVar7 + iVar29 * 2 != pdVar10)" (( "(") (binary_expression "pdVar7 + iVar29 * 2 != pdVar10" (binary_expression "pdVar7 + iVar29 * 2" (identifier "pdVar7") (+ "+") (binary_expression "iVar29 * 2" (identifier "iVar29") (* "*") (number_literal "2"))) (!= "!=") (identifier "pdVar10")) () ")")) (; ";")) (expression_statement "puVar22 = puVar13 + iVar29 * 10;" (assignment_expression "puVar22 = puVar13 + iVar29 * 10" (identifier "puVar22") (= "=") (binary_expression "puVar13 + iVar29 * 10" (identifier "puVar13") (+ "+") (binary_expression "iVar29 * 10" (identifier "iVar29") (* "*") (number_literal "10")))) (; ";")) (expression_statement "puVar12 = puVar22;" (assignment_expression "puVar12 = puVar22" (identifier "puVar12") (= "=") (identifier "puVar22")) (; ";")) (if_statement "if (bVar2) {\n    do {\n      puVar23 = puVar12;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar12 = puVar23 + 4;\n    } while (pdVar21 != pdVar31);\n    iVar29 = iVar29 + 1;\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar23[4] = *(undefined4 *)(pdVar6 + 4);\n    puVar23[5] = uVar26;\n    uVar28 = puVar13[1];\n    uVar27 = puVar13[2];\n    uVar26 = puVar13[3];\n    puVar12 = puVar13 + iVar29 * 10;\n    *puVar22 = *puVar13;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n  }" (if "if") (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (compound_statement "{\n    do {\n      puVar23 = puVar12;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar12 = puVar23 + 4;\n    } while (pdVar21 != pdVar31);\n    iVar29 = iVar29 + 1;\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar23[4] = *(undefined4 *)(pdVar6 + 4);\n    puVar23[5] = uVar26;\n    uVar28 = puVar13[1];\n    uVar27 = puVar13[2];\n    uVar26 = puVar13[3];\n    puVar12 = puVar13 + iVar29 * 10;\n    *puVar22 = *puVar13;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n  }" ({ "{") (do_statement "do {\n      puVar23 = puVar12;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar12 = puVar23 + 4;\n    } while (pdVar21 != pdVar31);" (do "do") (compound_statement "{\n      puVar23 = puVar12;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar11;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar12 = puVar23 + 4;\n    }" ({ "{") (expression_statement "puVar23 = puVar12;" (assignment_expression "puVar23 = puVar12" (identifier "puVar23") (= "=") (identifier "puVar12")) (; ";")) (expression_statement "pdVar21 = pdVar11 + 2;" (assignment_expression "pdVar21 = pdVar11 + 2" (identifier "pdVar21") (= "=") (binary_expression "pdVar11 + 2" (identifier "pdVar11") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "uVar28 = *(undefined4 *)((int)pdVar11 + 4);" (assignment_expression "uVar28 = *(undefined4 *)((int)pdVar11 + 4)" (identifier "uVar28") (= "=") (pointer_expression "*(undefined4 *)((int)pdVar11 + 4)" (* "*") (cast_expression "(undefined4 *)((int)pdVar11 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar11 + 4)" (( "(") (binary_expression "(int)pdVar11 + 4" (cast_expression "(int)pdVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar11")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar27 = *(undefined4 *)(pdVar11 + 1);" (assignment_expression "uVar27 = *(undefined4 *)(pdVar11 + 1)" (identifier "uVar27") (= "=") (pointer_expression "*(undefined4 *)(pdVar11 + 1)" (* "*") (cast_expression "(undefined4 *)(pdVar11 + 1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar11 + 1)" (( "(") (binary_expression "pdVar11 + 1" (identifier "pdVar11") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar11 + 0xc)" (identifier "uVar26") (= "=") (pointer_expression "*(undefined4 *)((int)pdVar11 + 0xc)" (* "*") (cast_expression "(undefined4 *)((int)pdVar11 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar11 + 0xc)" (( "(") (binary_expression "(int)pdVar11 + 0xc" (cast_expression "(int)pdVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar11")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*puVar23 = *(undefined4 *)pdVar11;" (assignment_expression "*puVar23 = *(undefined4 *)pdVar11" (pointer_expression "*puVar23" (* "*") (identifier "puVar23")) (= "=") (pointer_expression "*(undefined4 *)pdVar11" (* "*") (cast_expression "(undefined4 *)pdVar11" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pdVar11")))) (; ";")) (expression_statement "puVar23[1] = uVar28;" (assignment_expression "puVar23[1] = uVar28" (subscript_expression "puVar23[1]" (identifier "puVar23") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar28")) (; ";")) (expression_statement "puVar23[2] = uVar27;" (assignment_expression "puVar23[2] = uVar27" (subscript_expression "puVar23[2]" (identifier "puVar23") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar27")) (; ";")) (expression_statement "puVar23[3] = uVar26;" (assignment_expression "puVar23[3] = uVar26" (subscript_expression "puVar23[3]" (identifier "puVar23") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar26")) (; ";")) (expression_statement "pdVar11 = pdVar21;" (assignment_expression "pdVar11 = pdVar21" (identifier "pdVar11") (= "=") (identifier "pdVar21")) (; ";")) (expression_statement "puVar12 = puVar23 + 4;" (assignment_expression "puVar12 = puVar23 + 4" (identifier "puVar12") (= "=") (binary_expression "puVar23 + 4" (identifier "puVar23") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pdVar21 != pdVar31)" (( "(") (binary_expression "pdVar21 != pdVar31" (identifier "pdVar21") (!= "!=") (identifier "pdVar31")) () ")")) (; ";")) (expression_statement "iVar29 = iVar29 + 1;" (assignment_expression "iVar29 = iVar29 + 1" (identifier "iVar29") (= "=") (binary_expression "iVar29 + 1" (identifier "iVar29") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar6 + 0x24)" (identifier "uVar26") (= "=") (pointer_expression "*(undefined4 *)((int)pdVar6 + 0x24)" (* "*") (cast_expression "(undefined4 *)((int)pdVar6 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar6 + 0x24)" (( "(") (binary_expression "(int)pdVar6 + 0x24" (cast_expression "(int)pdVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar6")) (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "puVar23[4] = *(undefined4 *)(pdVar6 + 4);" (assignment_expression "puVar23[4] = *(undefined4 *)(pdVar6 + 4)" (subscript_expression "puVar23[4]" (identifier "puVar23") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*(undefined4 *)(pdVar6 + 4)" (* "*") (cast_expression "(undefined4 *)(pdVar6 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar6 + 4)" (( "(") (binary_expression "pdVar6 + 4" (identifier "pdVar6") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "puVar23[5] = uVar26;" (assignment_expression "puVar23[5] = uVar26" (subscript_expression "puVar23[5]" (identifier "puVar23") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar26")) (; ";")) (expression_statement "uVar28 = puVar13[1];" (assignment_expression "uVar28 = puVar13[1]" (identifier "uVar28") (= "=") (subscript_expression "puVar13[1]" (identifier "puVar13") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar27 = puVar13[2];" (assignment_expression "uVar27 = puVar13[2]" (identifier "uVar27") (= "=") (subscript_expression "puVar13[2]" (identifier "puVar13") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar26 = puVar13[3];" (assignment_expression "uVar26 = puVar13[3]" (identifier "uVar26") (= "=") (subscript_expression "puVar13[3]" (identifier "puVar13") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar12 = puVar13 + iVar29 * 10;" (assignment_expression "puVar12 = puVar13 + iVar29 * 10" (identifier "puVar12") (= "=") (binary_expression "puVar13 + iVar29 * 10" (identifier "puVar13") (+ "+") (binary_expression "iVar29 * 10" (identifier "iVar29") (* "*") (number_literal "10")))) (; ";")) (expression_statement "*puVar22 = *puVar13;" (assignment_expression "*puVar22 = *puVar13" (pointer_expression "*puVar22" (* "*") (identifier "puVar22")) (= "=") (pointer_expression "*puVar13" (* "*") (identifier "puVar13"))) (; ";")) (expression_statement "puVar22[1] = uVar28;" (assignment_expression "puVar22[1] = uVar28" (subscript_expression "puVar22[1]" (identifier "puVar22") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar28")) (; ";")) (expression_statement "puVar22[2] = uVar27;" (assignment_expression "puVar22[2] = uVar27" (subscript_expression "puVar22[2]" (identifier "puVar22") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar27")) (; ";")) (expression_statement "puVar22[3] = uVar26;" (assignment_expression "puVar22[3] = uVar26" (subscript_expression "puVar22[3]" (identifier "puVar22") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar26")) (; ";")) (} "}"))) (expression_statement "iStack_188 = iVar38 - iStack_188;" (assignment_expression "iStack_188 = iVar38 - iStack_188" (identifier "iStack_188") (= "=") (binary_expression "iVar38 - iStack_188" (identifier "iVar38") (- "-") (identifier "iStack_188"))) (; ";")) (if_statement "if (iVar29 < iStack_188) {\n    pdVar11 = pdVar6;\n    puVar12 = puVar13 + iVar29 * 10;\n    pdVar21 = pdVar8 + ((iStack_188 + 0xfffffff) - iVar29) * 2;\n    puVar23 = puVar13 + iVar29 * 10;\n    do {\n      do {\n        puVar25 = puVar12;\n        pdVar10 = pdVar11 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n        uVar27 = *(undefined4 *)(pdVar11 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n        *puVar25 = *(undefined4 *)pdVar11;\n        puVar25[1] = uVar28;\n        puVar25[2] = uVar27;\n        puVar25[3] = uVar26;\n        pdVar11 = pdVar10;\n        puVar12 = puVar25 + 4;\n      } while (pdVar10 != pdVar31);\n      pdVar10 = pdVar21 + -2;\n      uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n      puVar25[4] = *(undefined4 *)pdVar31;\n      puVar25[5] = uVar26;\n      uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n      uVar27 = *(undefined4 *)(pdVar21 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar21;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar6;\n      puVar12 = puVar23 + 10;\n      pdVar21 = pdVar10;\n      puVar23 = puVar23 + 10;\n    } while (pdVar8 + -2 != pdVar10);\n    puVar12 = puVar13 + iStack_188 * 10;\n    iVar29 = iStack_188;\n  }" (if "if") (parenthesized_expression "(iVar29 < iStack_188)" (( "(") (binary_expression "iVar29 < iStack_188" (identifier "iVar29") (< "<") (identifier "iStack_188")) () ")")) (compound_statement "{\n    pdVar11 = pdVar6;\n    puVar12 = puVar13 + iVar29 * 10;\n    pdVar21 = pdVar8 + ((iStack_188 + 0xfffffff) - iVar29) * 2;\n    puVar23 = puVar13 + iVar29 * 10;\n    do {\n      do {\n        puVar25 = puVar12;\n        pdVar10 = pdVar11 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n        uVar27 = *(undefined4 *)(pdVar11 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n        *puVar25 = *(undefined4 *)pdVar11;\n        puVar25[1] = uVar28;\n        puVar25[2] = uVar27;\n        puVar25[3] = uVar26;\n        pdVar11 = pdVar10;\n        puVar12 = puVar25 + 4;\n      } while (pdVar10 != pdVar31);\n      pdVar10 = pdVar21 + -2;\n      uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n      puVar25[4] = *(undefined4 *)pdVar31;\n      puVar25[5] = uVar26;\n      uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n      uVar27 = *(undefined4 *)(pdVar21 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar21;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar6;\n      puVar12 = puVar23 + 10;\n      pdVar21 = pdVar10;\n      puVar23 = puVar23 + 10;\n    } while (pdVar8 + -2 != pdVar10);\n    puVar12 = puVar13 + iStack_188 * 10;\n    iVar29 = iStack_188;\n  }" ({ "{") (expression_statement "pdVar11 = pdVar6;" (assignment_expression "pdVar11 = pdVar6" (identifier "pdVar11") (= "=") (identifier "pdVar6")) (; ";")) (expression_statement "puVar12 = puVar13 + iVar29 * 10;" (assignment_expression "puVar12 = puVar13 + iVar29 * 10" (identifier "puVar12") (= "=") (binary_expression "puVar13 + iVar29 * 10" (identifier "puVar13") (+ "+") (binary_expression "iVar29 * 10" (identifier "iVar29") (* "*") (number_literal "10")))) (; ";")) (expression_statement "pdVar21 = pdVar8 + ((iStack_188 + 0xfffffff) - iVar29) * 2;" (assignment_expression "pdVar21 = pdVar8 + ((iStack_188 + 0xfffffff) - iVar29) * 2" (identifier "pdVar21") (= "=") (binary_expression "pdVar8 + ((iStack_188 + 0xfffffff) - iVar29) * 2" (identifier "pdVar8") (+ "+") (binary_expression "((iStack_188 + 0xfffffff) - iVar29) * 2" (parenthesized_expression "((iStack_188 + 0xfffffff) - iVar29)" (( "(") (binary_expression "(iStack_188 + 0xfffffff) - iVar29" (parenthesized_expression "(iStack_188 + 0xfffffff)" (( "(") (binary_expression "iStack_188 + 0xfffffff" (identifier "iStack_188") (+ "+") (number_literal "0xfffffff")) () ")")) (- "-") (identifier "iVar29")) () ")")) (* "*") (number_literal "2")))) (; ";")) (expression_statement "puVar23 = puVar13 + iVar29 * 10;" (assignment_expression "puVar23 = puVar13 + iVar29 * 10" (identifier "puVar23") (= "=") (binary_expression "puVar13 + iVar29 * 10" (identifier "puVar13") (+ "+") (binary_expression "iVar29 * 10" (identifier "iVar29") (* "*") (number_literal "10")))) (; ";")) (do_statement "do {\n      do {\n        puVar25 = puVar12;\n        pdVar10 = pdVar11 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n        uVar27 = *(undefined4 *)(pdVar11 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n        *puVar25 = *(undefined4 *)pdVar11;\n        puVar25[1] = uVar28;\n        puVar25[2] = uVar27;\n        puVar25[3] = uVar26;\n        pdVar11 = pdVar10;\n        puVar12 = puVar25 + 4;\n      } while (pdVar10 != pdVar31);\n      pdVar10 = pdVar21 + -2;\n      uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n      puVar25[4] = *(undefined4 *)pdVar31;\n      puVar25[5] = uVar26;\n      uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n      uVar27 = *(undefined4 *)(pdVar21 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar21;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar6;\n      puVar12 = puVar23 + 10;\n      pdVar21 = pdVar10;\n      puVar23 = puVar23 + 10;\n    } while (pdVar8 + -2 != pdVar10);" (do "do") (compound_statement "{\n      do {\n        puVar25 = puVar12;\n        pdVar10 = pdVar11 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n        uVar27 = *(undefined4 *)(pdVar11 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n        *puVar25 = *(undefined4 *)pdVar11;\n        puVar25[1] = uVar28;\n        puVar25[2] = uVar27;\n        puVar25[3] = uVar26;\n        pdVar11 = pdVar10;\n        puVar12 = puVar25 + 4;\n      } while (pdVar10 != pdVar31);\n      pdVar10 = pdVar21 + -2;\n      uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n      puVar25[4] = *(undefined4 *)pdVar31;\n      puVar25[5] = uVar26;\n      uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n      uVar27 = *(undefined4 *)(pdVar21 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n      *puVar23 = *(undefined4 *)pdVar21;\n      puVar23[1] = uVar28;\n      puVar23[2] = uVar27;\n      puVar23[3] = uVar26;\n      pdVar11 = pdVar6;\n      puVar12 = puVar23 + 10;\n      pdVar21 = pdVar10;\n      puVar23 = puVar23 + 10;\n    }" ({ "{") (do_statement "do {\n        puVar25 = puVar12;\n        pdVar10 = pdVar11 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n        uVar27 = *(undefined4 *)(pdVar11 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n        *puVar25 = *(undefined4 *)pdVar11;\n        puVar25[1] = uVar28;\n        puVar25[2] = uVar27;\n        puVar25[3] = uVar26;\n        pdVar11 = pdVar10;\n        puVar12 = puVar25 + 4;\n      } while (pdVar10 != pdVar31);" (do "do") (compound_statement "{\n        puVar25 = puVar12;\n        pdVar10 = pdVar11 + 2;\n        uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n        uVar27 = *(undefined4 *)(pdVar11 + 1);\n        uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n        *puVar25 = *(undefined4 *)pdVar11;\n        puVar25[1] = uVar28;\n        puVar25[2] = uVar27;\n        puVar25[3] = uVar26;\n        pdVar11 = pdVar10;\n        puVar12 = puVar25 + 4;\n      }" ({ "{") (expression_statement "puVar25 = puVar12;" (assignment_expression "puVar25 = puVar12" (identifier "puVar25") (= "=") (identifier "puVar12")) (; ";")) (expression_statement "pdVar10 = pdVar11 + 2;" (assignment_expression "pdVar10 = pdVar11 + 2" (identifier "pdVar10") (= "=") (binary_expression "pdVar11 + 2" (identifier "pdVar11") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "uVar28 = *(undefined4 *)((int)pdVar11 + 4);" (assignment_expression "uVar28 = *(undefined4 *)((int)pdVar11 + 4)" (identifier "uVar28") (= "=") (pointer_expression "*(undefined4 *)((int)pdVar11 + 4)" (* "*") (cast_expression "(undefined4 *)((int)pdVar11 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar11 + 4)" (( "(") (binary_expression "(int)pdVar11 + 4" (cast_expression "(int)pdVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar11")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar27 = *(undefined4 *)(pdVar11 + 1);" (assignment_expression "uVar27 = *(undefined4 *)(pdVar11 + 1)" (identifier "uVar27") (= "=") (pointer_expression "*(undefined4 *)(pdVar11 + 1)" (* "*") (cast_expression "(undefined4 *)(pdVar11 + 1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar11 + 1)" (( "(") (binary_expression "pdVar11 + 1" (identifier "pdVar11") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar11 + 0xc)" (identifier "uVar26") (= "=") (pointer_expression "*(undefined4 *)((int)pdVar11 + 0xc)" (* "*") (cast_expression "(undefined4 *)((int)pdVar11 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar11 + 0xc)" (( "(") (binary_expression "(int)pdVar11 + 0xc" (cast_expression "(int)pdVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar11")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*puVar25 = *(undefined4 *)pdVar11;" (assignment_expression "*puVar25 = *(undefined4 *)pdVar11" (pointer_expression "*puVar25" (* "*") (identifier "puVar25")) (= "=") (pointer_expression "*(undefined4 *)pdVar11" (* "*") (cast_expression "(undefined4 *)pdVar11" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pdVar11")))) (; ";")) (expression_statement "puVar25[1] = uVar28;" (assignment_expression "puVar25[1] = uVar28" (subscript_expression "puVar25[1]" (identifier "puVar25") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar28")) (; ";")) (expression_statement "puVar25[2] = uVar27;" (assignment_expression "puVar25[2] = uVar27" (subscript_expression "puVar25[2]" (identifier "puVar25") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar27")) (; ";")) (expression_statement "puVar25[3] = uVar26;" (assignment_expression "puVar25[3] = uVar26" (subscript_expression "puVar25[3]" (identifier "puVar25") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar26")) (; ";")) (expression_statement "pdVar11 = pdVar10;" (assignment_expression "pdVar11 = pdVar10" (identifier "pdVar11") (= "=") (identifier "pdVar10")) (; ";")) (expression_statement "puVar12 = puVar25 + 4;" (assignment_expression "puVar12 = puVar25 + 4" (identifier "puVar12") (= "=") (binary_expression "puVar25 + 4" (identifier "puVar25") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pdVar10 != pdVar31)" (( "(") (binary_expression "pdVar10 != pdVar31" (identifier "pdVar10") (!= "!=") (identifier "pdVar31")) () ")")) (; ";")) (expression_statement "pdVar10 = pdVar21 + -2;" (assignment_expression "pdVar10 = pdVar21 + -2" (identifier "pdVar10") (= "=") (binary_expression "pdVar21 + -2" (identifier "pdVar21") (+ "+") (number_literal "-2"))) (; ";")) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar6 + 0x24)" (identifier "uVar26") (= "=") (pointer_expression "*(undefined4 *)((int)pdVar6 + 0x24)" (* "*") (cast_expression "(undefined4 *)((int)pdVar6 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar6 + 0x24)" (( "(") (binary_expression "(int)pdVar6 + 0x24" (cast_expression "(int)pdVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar6")) (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "puVar25[4] = *(undefined4 *)pdVar31;" (assignment_expression "puVar25[4] = *(undefined4 *)pdVar31" (subscript_expression "puVar25[4]" (identifier "puVar25") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*(undefined4 *)pdVar31" (* "*") (cast_expression "(undefined4 *)pdVar31" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pdVar31")))) (; ";")) (expression_statement "puVar25[5] = uVar26;" (assignment_expression "puVar25[5] = uVar26" (subscript_expression "puVar25[5]" (identifier "puVar25") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar26")) (; ";")) (expression_statement "uVar28 = *(undefined4 *)((int)pdVar21 + 4);" (assignment_expression "uVar28 = *(undefined4 *)((int)pdVar21 + 4)" (identifier "uVar28") (= "=") (pointer_expression "*(undefined4 *)((int)pdVar21 + 4)" (* "*") (cast_expression "(undefined4 *)((int)pdVar21 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar21 + 4)" (( "(") (binary_expression "(int)pdVar21 + 4" (cast_expression "(int)pdVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar21")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar27 = *(undefined4 *)(pdVar21 + 1);" (assignment_expression "uVar27 = *(undefined4 *)(pdVar21 + 1)" (identifier "uVar27") (= "=") (pointer_expression "*(undefined4 *)(pdVar21 + 1)" (* "*") (cast_expression "(undefined4 *)(pdVar21 + 1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar21 + 1)" (( "(") (binary_expression "pdVar21 + 1" (identifier "pdVar21") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar21 + 0xc)" (identifier "uVar26") (= "=") (pointer_expression "*(undefined4 *)((int)pdVar21 + 0xc)" (* "*") (cast_expression "(undefined4 *)((int)pdVar21 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar21 + 0xc)" (( "(") (binary_expression "(int)pdVar21 + 0xc" (cast_expression "(int)pdVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar21")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*puVar23 = *(undefined4 *)pdVar21;" (assignment_expression "*puVar23 = *(undefined4 *)pdVar21" (pointer_expression "*puVar23" (* "*") (identifier "puVar23")) (= "=") (pointer_expression "*(undefined4 *)pdVar21" (* "*") (cast_expression "(undefined4 *)pdVar21" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pdVar21")))) (; ";")) (expression_statement "puVar23[1] = uVar28;" (assignment_expression "puVar23[1] = uVar28" (subscript_expression "puVar23[1]" (identifier "puVar23") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar28")) (; ";")) (expression_statement "puVar23[2] = uVar27;" (assignment_expression "puVar23[2] = uVar27" (subscript_expression "puVar23[2]" (identifier "puVar23") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar27")) (; ";")) (expression_statement "puVar23[3] = uVar26;" (assignment_expression "puVar23[3] = uVar26" (subscript_expression "puVar23[3]" (identifier "puVar23") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar26")) (; ";")) (expression_statement "pdVar11 = pdVar6;" (assignment_expression "pdVar11 = pdVar6" (identifier "pdVar11") (= "=") (identifier "pdVar6")) (; ";")) (expression_statement "puVar12 = puVar23 + 10;" (assignment_expression "puVar12 = puVar23 + 10" (identifier "puVar12") (= "=") (binary_expression "puVar23 + 10" (identifier "puVar23") (+ "+") (number_literal "10"))) (; ";")) (expression_statement "pdVar21 = pdVar10;" (assignment_expression "pdVar21 = pdVar10" (identifier "pdVar21") (= "=") (identifier "pdVar10")) (; ";")) (expression_statement "puVar23 = puVar23 + 10;" (assignment_expression "puVar23 = puVar23 + 10" (identifier "puVar23") (= "=") (binary_expression "puVar23 + 10" (identifier "puVar23") (+ "+") (number_literal "10"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pdVar8 + -2 != pdVar10)" (( "(") (binary_expression "pdVar8 + -2 != pdVar10" (binary_expression "pdVar8 + -2" (identifier "pdVar8") (+ "+") (number_literal "-2")) (!= "!=") (identifier "pdVar10")) () ")")) (; ";")) (expression_statement "puVar12 = puVar13 + iStack_188 * 10;" (assignment_expression "puVar12 = puVar13 + iStack_188 * 10" (identifier "puVar12") (= "=") (binary_expression "puVar13 + iStack_188 * 10" (identifier "puVar13") (+ "+") (binary_expression "iStack_188 * 10" (identifier "iStack_188") (* "*") (number_literal "10")))) (; ";")) (expression_statement "iVar29 = iStack_188;" (assignment_expression "iVar29 = iStack_188" (identifier "iVar29") (= "=") (identifier "iStack_188")) (; ";")) (} "}"))) (expression_statement "puVar24 = puVar13 + (iVar29 + 1) * 10;" (assignment_expression "puVar24 = puVar13 + (iVar29 + 1) * 10" (identifier "puVar24") (= "=") (binary_expression "puVar13 + (iVar29 + 1) * 10" (identifier "puVar13") (+ "+") (binary_expression "(iVar29 + 1) * 10" (parenthesized_expression "(iVar29 + 1)" (( "(") (binary_expression "iVar29 + 1" (identifier "iVar29") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "10")))) (; ";")) (expression_statement "pdVar11 = pdVar6;" (assignment_expression "pdVar11 = pdVar6" (identifier "pdVar11") (= "=") (identifier "pdVar6")) (; ";")) (expression_statement "puVar23 = puVar12;" (assignment_expression "puVar23 = puVar12" (identifier "puVar23") (= "=") (identifier "puVar12")) (; ";")) (expression_statement "puVar25 = puVar24;" (assignment_expression "puVar25 = puVar24" (identifier "puVar25") (= "=") (identifier "puVar24")) (; ";")) (if_statement "if (bVar2) {\n    do {\n      puVar25 = puVar23;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar25 = *(undefined4 *)pdVar11;\n      puVar25[1] = uVar28;\n      puVar25[2] = uVar27;\n      puVar25[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar23 = puVar25 + 4;\n    } while (pdVar21 != pdVar31);\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar25[4] = *(undefined4 *)(pdVar6 + 4);\n    puVar25[5] = uVar26;\n    uVar27 = puVar22[0xb];\n    uVar26 = puVar22[0xc];\n    uVar28 = puVar22[0xd];\n    *puVar12 = puVar22[10];\n    puVar12[1] = uVar27;\n    puVar12[2] = uVar26;\n    puVar12[3] = uVar28;\n    puVar25 = puVar13 + (iVar29 + 1) * 10 + 10;\n    pdVar11 = pdVar6;\n    puVar12 = puVar24;\n    puVar23 = puVar24;\n  }" (if "if") (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (compound_statement "{\n    do {\n      puVar25 = puVar23;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar25 = *(undefined4 *)pdVar11;\n      puVar25[1] = uVar28;\n      puVar25[2] = uVar27;\n      puVar25[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar23 = puVar25 + 4;\n    } while (pdVar21 != pdVar31);\n    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);\n    puVar25[4] = *(undefined4 *)(pdVar6 + 4);\n    puVar25[5] = uVar26;\n    uVar27 = puVar22[0xb];\n    uVar26 = puVar22[0xc];\n    uVar28 = puVar22[0xd];\n    *puVar12 = puVar22[10];\n    puVar12[1] = uVar27;\n    puVar12[2] = uVar26;\n    puVar12[3] = uVar28;\n    puVar25 = puVar13 + (iVar29 + 1) * 10 + 10;\n    pdVar11 = pdVar6;\n    puVar12 = puVar24;\n    puVar23 = puVar24;\n  }" ({ "{") (do_statement "do {\n      puVar25 = puVar23;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar25 = *(undefined4 *)pdVar11;\n      puVar25[1] = uVar28;\n      puVar25[2] = uVar27;\n      puVar25[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar23 = puVar25 + 4;\n    } while (pdVar21 != pdVar31);" (do "do") (compound_statement "{\n      puVar25 = puVar23;\n      pdVar21 = pdVar11 + 2;\n      uVar28 = *(undefined4 *)((int)pdVar11 + 4);\n      uVar27 = *(undefined4 *)(pdVar11 + 1);\n      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);\n      *puVar25 = *(undefined4 *)pdVar11;\n      puVar25[1] = uVar28;\n      puVar25[2] = uVar27;\n      puVar25[3] = uVar26;\n      pdVar11 = pdVar21;\n      puVar23 = puVar25 + 4;\n    }" ({ "{") (expression_statement "puVar25 = puVar23;" (assignment_expression "puVar25 = puVar23" (identifier "puVar25") (= "=") (identifier "puVar23")) (; ";")) (expression_statement "pdVar21 = pdVar11 + 2;" (assignment_expression "pdVar21 = pdVar11 + 2" (identifier "pdVar21") (= "=") (binary_expression "pdVar11 + 2" (identifier "pdVar11") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "uVar28 = *(undefined4 *)((int)pdVar11 + 4);" (assignment_expression "uVar28 = *(undefined4 *)((int)pdVar11 + 4)" (identifier "uVar28") (= "=") (pointer_expression "*(undefined4 *)((int)pdVar11 + 4)" (* "*") (cast_expression "(undefined4 *)((int)pdVar11 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar11 + 4)" (( "(") (binary_expression "(int)pdVar11 + 4" (cast_expression "(int)pdVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar11")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar27 = *(undefined4 *)(pdVar11 + 1);" (assignment_expression "uVar27 = *(undefined4 *)(pdVar11 + 1)" (identifier "uVar27") (= "=") (pointer_expression "*(undefined4 *)(pdVar11 + 1)" (* "*") (cast_expression "(undefined4 *)(pdVar11 + 1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar11 + 1)" (( "(") (binary_expression "pdVar11 + 1" (identifier "pdVar11") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar11 + 0xc)" (identifier "uVar26") (= "=") (pointer_expression "*(undefined4 *)((int)pdVar11 + 0xc)" (* "*") (cast_expression "(undefined4 *)((int)pdVar11 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar11 + 0xc)" (( "(") (binary_expression "(int)pdVar11 + 0xc" (cast_expression "(int)pdVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar11")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*puVar25 = *(undefined4 *)pdVar11;" (assignment_expression "*puVar25 = *(undefined4 *)pdVar11" (pointer_expression "*puVar25" (* "*") (identifier "puVar25")) (= "=") (pointer_expression "*(undefined4 *)pdVar11" (* "*") (cast_expression "(undefined4 *)pdVar11" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pdVar11")))) (; ";")) (expression_statement "puVar25[1] = uVar28;" (assignment_expression "puVar25[1] = uVar28" (subscript_expression "puVar25[1]" (identifier "puVar25") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar28")) (; ";")) (expression_statement "puVar25[2] = uVar27;" (assignment_expression "puVar25[2] = uVar27" (subscript_expression "puVar25[2]" (identifier "puVar25") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar27")) (; ";")) (expression_statement "puVar25[3] = uVar26;" (assignment_expression "puVar25[3] = uVar26" (subscript_expression "puVar25[3]" (identifier "puVar25") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar26")) (; ";")) (expression_statement "pdVar11 = pdVar21;" (assignment_expression "pdVar11 = pdVar21" (identifier "pdVar11") (= "=") (identifier "pdVar21")) (; ";")) (expression_statement "puVar23 = puVar25 + 4;" (assignment_expression "puVar23 = puVar25 + 4" (identifier "puVar23") (= "=") (binary_expression "puVar25 + 4" (identifier "puVar25") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pdVar21 != pdVar31)" (( "(") (binary_expression "pdVar21 != pdVar31" (identifier "pdVar21") (!= "!=") (identifier "pdVar31")) () ")")) (; ";")) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar6 + 0x24)" (identifier "uVar26") (= "=") (pointer_expression "*(undefined4 *)((int)pdVar6 + 0x24)" (* "*") (cast_expression "(undefined4 *)((int)pdVar6 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar6 + 0x24)" (( "(") (binary_expression "(int)pdVar6 + 0x24" (cast_expression "(int)pdVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar6")) (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "puVar25[4] = *(undefined4 *)(pdVar6 + 4);" (assignment_expression "puVar25[4] = *(undefined4 *)(pdVar6 + 4)" (subscript_expression "puVar25[4]" (identifier "puVar25") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*(undefined4 *)(pdVar6 + 4)" (* "*") (cast_expression "(undefined4 *)(pdVar6 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar6 + 4)" (( "(") (binary_expression "pdVar6 + 4" (identifier "pdVar6") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "puVar25[5] = uVar26;" (assignment_expression "puVar25[5] = uVar26" (subscript_expression "puVar25[5]" (identifier "puVar25") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar26")) (; ";")) (expression_statement "uVar27 = puVar22[0xb];" (assignment_expression "uVar27 = puVar22[0xb]" (identifier "uVar27") (= "=") (subscript_expression "puVar22[0xb]" (identifier "puVar22") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (expression_statement "uVar26 = puVar22[0xc];" (assignment_expression "uVar26 = puVar22[0xc]" (identifier "uVar26") (= "=") (subscript_expression "puVar22[0xc]" (identifier "puVar22") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "uVar28 = puVar22[0xd];" (assignment_expression "uVar28 = puVar22[0xd]" (identifier "uVar28") (= "=") (subscript_expression "puVar22[0xd]" (identifier "puVar22") ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (expression_statement "*puVar12 = puVar22[10];" (assignment_expression "*puVar12 = puVar22[10]" (pointer_expression "*puVar12" (* "*") (identifier "puVar12")) (= "=") (subscript_expression "puVar22[10]" (identifier "puVar22") ([ "[") (number_literal "10") (] "]"))) (; ";")) (expression_statement "puVar12[1] = uVar27;" (assignment_expression "puVar12[1] = uVar27" (subscript_expression "puVar12[1]" (identifier "puVar12") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar27")) (; ";")) (expression_statement "puVar12[2] = uVar26;" (assignment_expression "puVar12[2] = uVar26" (subscript_expression "puVar12[2]" (identifier "puVar12") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar26")) (; ";")) (expression_statement "puVar12[3] = uVar28;" (assignment_expression "puVar12[3] = uVar28" (subscript_expression "puVar12[3]" (identifier "puVar12") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar28")) (; ";")) (expression_statement "puVar25 = puVar13 + (iVar29 + 1) * 10 + 10;" (assignment_expression "puVar25 = puVar13 + (iVar29 + 1) * 10 + 10" (identifier "puVar25") (= "=") (binary_expression "puVar13 + (iVar29 + 1) * 10 + 10" (binary_expression "puVar13 + (iVar29 + 1) * 10" (identifier "puVar13") (+ "+") (binary_expression "(iVar29 + 1) * 10" (parenthesized_expression "(iVar29 + 1)" (( "(") (binary_expression "iVar29 + 1" (identifier "iVar29") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "10"))) (+ "+") (number_literal "10"))) (; ";")) (expression_statement "pdVar11 = pdVar6;" (assignment_expression "pdVar11 = pdVar6" (identifier "pdVar11") (= "=") (identifier "pdVar6")) (; ";")) (expression_statement "puVar12 = puVar24;" (assignment_expression "puVar12 = puVar24" (identifier "puVar12") (= "=") (identifier "puVar24")) (; ";")) (expression_statement "puVar23 = puVar24;" (assignment_expression "puVar23 = puVar24" (identifier "puVar23") (= "=") (identifier "puVar24")) (; ";")) (} "}"))) (do_statement "do {\n    puVar22 = puVar12;\n    pdVar21 = pdVar11;\n    pdVar11 = pdVar21 + 2;\n    uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n    uVar27 = *(undefined4 *)(pdVar21 + 1);\n    uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n    *puVar22 = *(undefined4 *)pdVar21;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    puVar12 = puVar22 + 4;\n  } while (pdVar11 != pdVar31);" (do "do") (compound_statement "{\n    puVar22 = puVar12;\n    pdVar21 = pdVar11;\n    pdVar11 = pdVar21 + 2;\n    uVar28 = *(undefined4 *)((int)pdVar21 + 4);\n    uVar27 = *(undefined4 *)(pdVar21 + 1);\n    uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);\n    *puVar22 = *(undefined4 *)pdVar21;\n    puVar22[1] = uVar28;\n    puVar22[2] = uVar27;\n    puVar22[3] = uVar26;\n    puVar12 = puVar22 + 4;\n  }" ({ "{") (expression_statement "puVar22 = puVar12;" (assignment_expression "puVar22 = puVar12" (identifier "puVar22") (= "=") (identifier "puVar12")) (; ";")) (expression_statement "pdVar21 = pdVar11;" (assignment_expression "pdVar21 = pdVar11" (identifier "pdVar21") (= "=") (identifier "pdVar11")) (; ";")) (expression_statement "pdVar11 = pdVar21 + 2;" (assignment_expression "pdVar11 = pdVar21 + 2" (identifier "pdVar11") (= "=") (binary_expression "pdVar21 + 2" (identifier "pdVar21") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "uVar28 = *(undefined4 *)((int)pdVar21 + 4);" (assignment_expression "uVar28 = *(undefined4 *)((int)pdVar21 + 4)" (identifier "uVar28") (= "=") (pointer_expression "*(undefined4 *)((int)pdVar21 + 4)" (* "*") (cast_expression "(undefined4 *)((int)pdVar21 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar21 + 4)" (( "(") (binary_expression "(int)pdVar21 + 4" (cast_expression "(int)pdVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar21")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar27 = *(undefined4 *)(pdVar21 + 1);" (assignment_expression "uVar27 = *(undefined4 *)(pdVar21 + 1)" (identifier "uVar27") (= "=") (pointer_expression "*(undefined4 *)(pdVar21 + 1)" (* "*") (cast_expression "(undefined4 *)(pdVar21 + 1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar21 + 1)" (( "(") (binary_expression "pdVar21 + 1" (identifier "pdVar21") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar21 + 0xc)" (identifier "uVar26") (= "=") (pointer_expression "*(undefined4 *)((int)pdVar21 + 0xc)" (* "*") (cast_expression "(undefined4 *)((int)pdVar21 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar21 + 0xc)" (( "(") (binary_expression "(int)pdVar21 + 0xc" (cast_expression "(int)pdVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar21")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*puVar22 = *(undefined4 *)pdVar21;" (assignment_expression "*puVar22 = *(undefined4 *)pdVar21" (pointer_expression "*puVar22" (* "*") (identifier "puVar22")) (= "=") (pointer_expression "*(undefined4 *)pdVar21" (* "*") (cast_expression "(undefined4 *)pdVar21" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pdVar21")))) (; ";")) (expression_statement "puVar22[1] = uVar28;" (assignment_expression "puVar22[1] = uVar28" (subscript_expression "puVar22[1]" (identifier "puVar22") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar28")) (; ";")) (expression_statement "puVar22[2] = uVar27;" (assignment_expression "puVar22[2] = uVar27" (subscript_expression "puVar22[2]" (identifier "puVar22") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar27")) (; ";")) (expression_statement "puVar22[3] = uVar26;" (assignment_expression "puVar22[3] = uVar26" (subscript_expression "puVar22[3]" (identifier "puVar22") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar26")) (; ";")) (expression_statement "puVar12 = puVar22 + 4;" (assignment_expression "puVar12 = puVar22 + 4" (identifier "puVar12") (= "=") (binary_expression "puVar22 + 4" (identifier "puVar22") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pdVar11 != pdVar31)" (( "(") (binary_expression "pdVar11 != pdVar31" (identifier "pdVar11") (!= "!=") (identifier "pdVar31")) () ")")) (; ";")) (expression_statement "uVar26 = *(undefined4 *)((int)pdVar21 + 0x14);" (assignment_expression "uVar26 = *(undefined4 *)((int)pdVar21 + 0x14)" (identifier "uVar26") (= "=") (pointer_expression "*(undefined4 *)((int)pdVar21 + 0x14)" (* "*") (cast_expression "(undefined4 *)((int)pdVar21 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar21 + 0x14)" (( "(") (binary_expression "(int)pdVar21 + 0x14" (cast_expression "(int)pdVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar21")) (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042b0);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042b0)" (identifier "pcVar37") (= "=") (pointer_expression "*(code **)(puVar36 + 0x3042b0)" (* "*") (cast_expression "(code **)(puVar36 + 0x3042b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3042b0)" (( "(") (binary_expression "puVar36 + 0x3042b0" (identifier "puVar36") (+ "+") (number_literal "0x3042b0")) () ")"))))) (; ";")) (expression_statement "puVar22[4] = *(undefined4 *)pdVar11;" (assignment_expression "puVar22[4] = *(undefined4 *)pdVar11" (subscript_expression "puVar22[4]" (identifier "puVar22") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*(undefined4 *)pdVar11" (* "*") (cast_expression "(undefined4 *)pdVar11" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pdVar11")))) (; ";")) (expression_statement "puVar22[5] = uVar26;" (assignment_expression "puVar22[5] = uVar26" (subscript_expression "puVar22[5]" (identifier "puVar22") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar26")) (; ";")) (expression_statement "uVar28 = puVar13[1];" (assignment_expression "uVar28 = puVar13[1]" (identifier "uVar28") (= "=") (subscript_expression "puVar13[1]" (identifier "puVar13") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar27 = puVar13[2];" (assignment_expression "uVar27 = puVar13[2]" (identifier "uVar27") (= "=") (subscript_expression "puVar13[2]" (identifier "puVar13") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar26 = puVar13[3];" (assignment_expression "uVar26 = puVar13[3]" (identifier "uVar26") (= "=") (subscript_expression "puVar13[3]" (identifier "puVar13") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*puVar23 = *puVar13;" (assignment_expression "*puVar23 = *puVar13" (pointer_expression "*puVar23" (* "*") (identifier "puVar23")) (= "=") (pointer_expression "*puVar13" (* "*") (identifier "puVar13"))) (; ";")) (expression_statement "puVar23[1] = uVar28;" (assignment_expression "puVar23[1] = uVar28" (subscript_expression "puVar23[1]" (identifier "puVar23") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar28")) (; ";")) (expression_statement "puVar23[2] = uVar27;" (assignment_expression "puVar23[2] = uVar27" (subscript_expression "puVar23[2]" (identifier "puVar23") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar27")) (; ";")) (expression_statement "puVar23[3] = uVar26;" (assignment_expression "puVar23[3] = uVar26" (subscript_expression "puVar23[3]" (identifier "puVar23") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar26")) (; ";")) (expression_statement "puVar25[5] = 0;" (assignment_expression "puVar25[5] = 0" (subscript_expression "puVar25[5]" (identifier "puVar25") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar13[4] = iVar38 + 1;" (assignment_expression "puVar13[4] = iVar38 + 1" (subscript_expression "puVar13[4]" (identifier "puVar13") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "iVar38 + 1" (identifier "iVar38") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(*pcVar37)(pdVar7);" (call_expression "(*pcVar37)(pdVar7)" (parenthesized_expression "(*pcVar37)" (( "(") (pointer_expression "*pcVar37" (* "*") (identifier "pcVar37")) () ")")) (argument_list "(pdVar7)" (( "(") (identifier "pdVar7") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar8);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar8)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x3042b0)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x3042b0)" (* "*") (cast_expression "(code **)(puVar36 + 0x3042b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3042b0)" (( "(") (binary_expression "puVar36 + 0x3042b0" (identifier "puVar36") (+ "+") (number_literal "0x3042b0")) () ")"))))) () ")")) (argument_list "(pdVar8)" (( "(") (identifier "pdVar8") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar36 + 0x3042b0))(pdVar6);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(pdVar6)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x3042b0)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x3042b0)" (* "*") (cast_expression "(code **)(puVar36 + 0x3042b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3042b0)" (( "(") (binary_expression "puVar36 + 0x3042b0" (identifier "puVar36") (+ "+") (number_literal "0x3042b0")) () ")"))))) () ")")) (argument_list "(pdVar6)" (( "(") (identifier "pdVar6") () ")"))) (; ";")) (labeled_statement "LAB_000a61cc:\n  uVar4 = FUN_000a2d58(iVar17,iVar5,puVar13,param_4);" (statement_identifier "LAB_000a61cc") (: ":") (expression_statement "uVar4 = FUN_000a2d58(iVar17,iVar5,puVar13,param_4);" (assignment_expression "uVar4 = FUN_000a2d58(iVar17,iVar5,puVar13,param_4)" (identifier "uVar4") (= "=") (call_expression "FUN_000a2d58(iVar17,iVar5,puVar13,param_4)" (identifier "FUN_000a2d58") (argument_list "(iVar17,iVar5,puVar13,param_4)" (( "(") (identifier "iVar17") (, ",") (identifier "iVar5") (, ",") (identifier "puVar13") (, ",") (identifier "param_4") () ")")))) (; ";"))) (expression_statement "uStack_1d0 = uStack_1d0 & uVar4;" (assignment_expression "uStack_1d0 = uStack_1d0 & uVar4" (identifier "uStack_1d0") (= "=") (binary_expression "uStack_1d0 & uVar4" (identifier "uStack_1d0") (& "&") (identifier "uVar4"))) (; ";")) (expression_statement "(**(code **)(puVar36 + 0x3042b0))(puVar13);" (call_expression "(**(code **)(puVar36 + 0x3042b0))(puVar13)" (parenthesized_expression "(**(code **)(puVar36 + 0x3042b0))" (( "(") (pointer_expression "**(code **)(puVar36 + 0x3042b0)" (* "*") (pointer_expression "*(code **)(puVar36 + 0x3042b0)" (* "*") (cast_expression "(code **)(puVar36 + 0x3042b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3042b0)" (( "(") (binary_expression "puVar36 + 0x3042b0" (identifier "puVar36") (+ "+") (number_literal "0x3042b0")) () ")"))))) () ")")) (argument_list "(puVar13)" (( "(") (identifier "puVar13") () ")"))) (; ";")) (if_statement "if (uStack_1d0 == 0) goto LAB_000a5774;" (if "if") (parenthesized_expression "(uStack_1d0 == 0)" (( "(") (binary_expression "uStack_1d0 == 0" (identifier "uStack_1d0") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000a5774;" (goto "goto") (statement_identifier "LAB_000a5774") (; ";"))) (expression_statement "iVar32 = *(int *)(pdStack_e8 + 2);" (assignment_expression "iVar32 = *(int *)(pdStack_e8 + 2)" (identifier "iVar32") (= "=") (pointer_expression "*(int *)(pdStack_e8 + 2)" (* "*") (cast_expression "(int *)(pdStack_e8 + 2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdStack_e8 + 2)" (( "(") (binary_expression "pdStack_e8 + 2" (identifier "pdStack_e8") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "iVar29 = iVar32 * 0x28;" (assignment_expression "iVar29 = iVar32 * 0x28" (identifier "iVar29") (= "=") (binary_expression "iVar32 * 0x28" (identifier "iVar32") (* "*") (number_literal "0x28"))) (; ";")) (if_statement "if ((*(int *)(param_2 + 0x244) == 2) && (*(int *)(pdStack_e8 + 4) == 0)) {\n    uVar4 = FUN_000a4c0c(iVar17,param_2,pdStack_e8,param_4);\n    uVar14 = FUN_000a4c0c(iVar17,param_2,pdStack_e8 + iVar32 * 5 + -5,param_4);\n    uStack_1d0 = uVar4 & uVar14 & 1;\n    iVar29 = *(int *)(pdStack_e8 + 2) * 0x28;\n  }" (if "if") (parenthesized_expression "((*(int *)(param_2 + 0x244) == 2) && (*(int *)(pdStack_e8 + 4) == 0))" (( "(") (binary_expression "(*(int *)(param_2 + 0x244) == 2) && (*(int *)(pdStack_e8 + 4) == 0)" (parenthesized_expression "(*(int *)(param_2 + 0x244) == 2)" (( "(") (binary_expression "*(int *)(param_2 + 0x244) == 2" (pointer_expression "*(int *)(param_2 + 0x244)" (* "*") (cast_expression "(int *)(param_2 + 0x244)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x244)" (( "(") (binary_expression "param_2 + 0x244" (identifier "param_2") (+ "+") (number_literal "0x244")) () ")")))) (== "==") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(pdStack_e8 + 4) == 0)" (( "(") (binary_expression "*(int *)(pdStack_e8 + 4) == 0" (pointer_expression "*(int *)(pdStack_e8 + 4)" (* "*") (cast_expression "(int *)(pdStack_e8 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdStack_e8 + 4)" (( "(") (binary_expression "pdStack_e8 + 4" (identifier "pdStack_e8") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    uVar4 = FUN_000a4c0c(iVar17,param_2,pdStack_e8,param_4);\n    uVar14 = FUN_000a4c0c(iVar17,param_2,pdStack_e8 + iVar32 * 5 + -5,param_4);\n    uStack_1d0 = uVar4 & uVar14 & 1;\n    iVar29 = *(int *)(pdStack_e8 + 2) * 0x28;\n  }" ({ "{") (expression_statement "uVar4 = FUN_000a4c0c(iVar17,param_2,pdStack_e8,param_4);" (assignment_expression "uVar4 = FUN_000a4c0c(iVar17,param_2,pdStack_e8,param_4)" (identifier "uVar4") (= "=") (call_expression "FUN_000a4c0c(iVar17,param_2,pdStack_e8,param_4)" (identifier "FUN_000a4c0c") (argument_list "(iVar17,param_2,pdStack_e8,param_4)" (( "(") (identifier "iVar17") (, ",") (identifier "param_2") (, ",") (identifier "pdStack_e8") (, ",") (identifier "param_4") () ")")))) (; ";")) (expression_statement "uVar14 = FUN_000a4c0c(iVar17,param_2,pdStack_e8 + iVar32 * 5 + -5,param_4);" (assignment_expression "uVar14 = FUN_000a4c0c(iVar17,param_2,pdStack_e8 + iVar32 * 5 + -5,param_4)" (identifier "uVar14") (= "=") (call_expression "FUN_000a4c0c(iVar17,param_2,pdStack_e8 + iVar32 * 5 + -5,param_4)" (identifier "FUN_000a4c0c") (argument_list "(iVar17,param_2,pdStack_e8 + iVar32 * 5 + -5,param_4)" (( "(") (identifier "iVar17") (, ",") (identifier "param_2") (, ",") (binary_expression "pdStack_e8 + iVar32 * 5 + -5" (binary_expression "pdStack_e8 + iVar32 * 5" (identifier "pdStack_e8") (+ "+") (binary_expression "iVar32 * 5" (identifier "iVar32") (* "*") (number_literal "5"))) (+ "+") (number_literal "-5")) (, ",") (identifier "param_4") () ")")))) (; ";")) (expression_statement "uStack_1d0 = uVar4 & uVar14 & 1;" (assignment_expression "uStack_1d0 = uVar4 & uVar14 & 1" (identifier "uStack_1d0") (= "=") (binary_expression "uVar4 & uVar14 & 1" (binary_expression "uVar4 & uVar14" (identifier "uVar4") (& "&") (identifier "uVar14")) (& "&") (number_literal "1"))) (; ";")) (expression_statement "iVar29 = *(int *)(pdStack_e8 + 2) * 0x28;" (assignment_expression "iVar29 = *(int *)(pdStack_e8 + 2) * 0x28" (identifier "iVar29") (= "=") (binary_expression "*(int *)(pdStack_e8 + 2) * 0x28" (pointer_expression "*(int *)(pdStack_e8 + 2)" (* "*") (cast_expression "(int *)(pdStack_e8 + 2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdStack_e8 + 2)" (( "(") (binary_expression "pdStack_e8 + 2" (identifier "pdStack_e8") (+ "+") (number_literal "2")) () ")")))) (* "*") (number_literal "0x28"))) (; ";")) (} "}"))) (labeled_statement "LAB_000a6620:\n  pdStack_e8 = (double *)((int)pdStack_e8 + iVar29);" (statement_identifier "LAB_000a6620") (: ":") (expression_statement "pdStack_e8 = (double *)((int)pdStack_e8 + iVar29);" (assignment_expression "pdStack_e8 = (double *)((int)pdStack_e8 + iVar29)" (identifier "pdStack_e8") (= "=") (cast_expression "(double *)((int)pdStack_e8 + iVar29)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdStack_e8 + iVar29)" (( "(") (binary_expression "(int)pdStack_e8 + iVar29" (cast_expression "(int)pdStack_e8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdStack_e8")) (+ "+") (identifier "iVar29")) () ")")))) (; ";"))) (if_statement "if (*(int *)((int)pdStack_e8 + 0x14) == 0) goto code_r0x000a6634;" (if "if") (parenthesized_expression "(*(int *)((int)pdStack_e8 + 0x14) == 0)" (( "(") (binary_expression "*(int *)((int)pdStack_e8 + 0x14) == 0" (pointer_expression "*(int *)((int)pdStack_e8 + 0x14)" (* "*") (cast_expression "(int *)((int)pdStack_e8 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdStack_e8 + 0x14)" (( "(") (binary_expression "(int)pdStack_e8 + 0x14" (cast_expression "(int)pdStack_e8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdStack_e8")) (+ "+") (number_literal "0x14")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto code_r0x000a6634;" (goto "goto") (statement_identifier "code_r0x000a6634") (; ";"))) (goto_statement "goto LAB_000a4e98;" (goto "goto") (statement_identifier "LAB_000a4e98") (; ";")) (labeled_statement "code_r0x000a6634:\n  pcVar37 = *(code **)(puVar36 + 0x3042d8);" (statement_identifier "code_r0x000a6634") (: ":") (expression_statement "pcVar37 = *(code **)(puVar36 + 0x3042d8);" (assignment_expression "pcVar37 = *(code **)(puVar36 + 0x3042d8)" (identifier "pcVar37") (= "=") (pointer_expression "*(code **)(puVar36 + 0x3042d8)" (* "*") (cast_expression "(code **)(puVar36 + 0x3042d8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar36 + 0x3042d8)" (( "(") (binary_expression "puVar36 + 0x3042d8" (identifier "puVar36") (+ "+") (number_literal "0x3042d8")) () ")"))))) (; ";"))) (goto_statement "goto LAB_000a5778;" (goto "goto") (statement_identifier "LAB_000a5778") (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (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: (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: (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: (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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (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: (identifier)) (declaration type: (primitive_type) 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: (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: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (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: (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: (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: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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 (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (pointer_expression argument: (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: (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: (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: (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: (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: (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: (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: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (identifier) arguments: (argument_list)))) (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 (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))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (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))))))) (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) (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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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))))) 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: (identifier) right: (pointer_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: (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: (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: (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 (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (number_literal) (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: (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: (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))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) 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: (pointer_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: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (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)))))) (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: (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 (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (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 (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) right: (pointer_expression argument: (identifier))))) right: (identifier))) right: (parenthesized_expression (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (subscript_expression argument: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))))) right: (identifier))))) consequence: (compound_statement (if_statement condition: (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: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (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: (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: (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: (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: (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: (identifier))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (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: (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: (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: (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: (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: (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: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (true))) (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (if_statement condition: (parenthesized_expression (identifier)) 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: (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement 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: (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))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) 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)))))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier))) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier))) right: (identifier)))))))))) (labeled_statement label: (statement_identifier) (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: (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)))))) (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: (identifier) 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)) value: (number_literal)))) consequence: (compound_statement (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 (identifier)))))) (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 (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: (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 (identifier)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (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))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) 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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) 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)))))))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (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))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) 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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) 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)))))))) (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: (pointer_expression argument: (cast_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: (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: (pointer_expression argument: (cast_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))))))))) (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: (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: (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: (pointer_expression argument: (cast_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: (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)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (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: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) 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)))))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier))) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier))) right: (identifier))))))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) 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: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) 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: (pointer_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: (identifier)) 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))))) (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: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (break_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: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) 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: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (call_expression function: (identifier) arguments: (argument_list (identifier))) right: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (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: (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: (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: (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: (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: (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: (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: (identifier) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) 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: (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: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (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: (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: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (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: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (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: (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))))))) 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: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (identifier) right: (identifier)))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (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))))))) 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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (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: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (identifier) right: (identifier)))) 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)))))))) (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: (pointer_expression argument: (cast_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: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (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: (identifier) right: (number_literal))))))))))))))) (labeled_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: (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)))) (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: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (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: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (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: (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: (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: (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: (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: (pointer_expression 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))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier))) right: (binary_expression left: (identifier) right: (identifier)))) right: (identifier))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier))) right: (binary_expression left: (identifier) right: (identifier)))) right: (identifier))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (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: (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: (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) (binary_expression left: (identifier) right: (number_literal)) (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: (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))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (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 (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 (identifier))))) (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)))))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (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) 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)))))) (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))) (labeled_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: (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))))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) 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) (binary_expression left: (identifier) right: (number_literal)) (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (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) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (labeled_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: (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)))) (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: (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: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (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: (binary_expression left: (identifier) right: (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: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) index: (number_literal)) 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: (binary_expression left: (identifier) right: (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: (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: (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (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: (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: (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: (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)))))))) (goto_statement label: (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: (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) index: (number_literal)) 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: (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)) (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)) (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: (pointer_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: (pointer_expression 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: (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: (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: (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: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (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: (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) (number_literal))))))) 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: (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: (binary_expression left: (identifier) right: (number_literal)) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (goto_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: (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 (identifier) (binary_expression left: (identifier) right: (number_literal)) (number_literal)))))) (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: (compound_statement (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 (identifier))))) (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)))))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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: (identifier))) arguments: (argument_list (identifier))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (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: (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))))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (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: (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 (identifier)))) (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: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (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: (number_literal))) (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: (binary_expression left: (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: (identifier))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (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)))))) (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (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: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) index: (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: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal))) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (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: (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) index: (number_literal)) 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: (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (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: (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: (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) index: (number_literal)) 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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))))) (goto_statement label: (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: (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) index: (number_literal)) 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: (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)) (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)) (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: (pointer_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: (pointer_expression 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: (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: (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: (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_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: (identifier))) arguments: (argument_list (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: (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: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_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: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (identifier))) consequence: (goto_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: (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 (identifier) (binary_expression left: (identifier) right: (number_literal)) (number_literal)))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (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 (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 (identifier))))) (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)))))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (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) (binary_expression left: (identifier) right: (number_literal)) (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: (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))))))))) (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 (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: (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))))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (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: (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 (identifier)))) (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: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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: (binary_expression left: (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: (identifier))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (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)))))) (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (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: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (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: (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: (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: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))) consequence: (goto_statement label: (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: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) index: (number_literal))))) condition: (parenthesized_expression (true))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (goto_statement label: (statement_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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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 (unary_expression argument: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (expression_statement (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: (identifier))) arguments: (argument_list (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: (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: (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: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (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: (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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) 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 (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)) (binary_expression left: (pointer_expression argument: (cast_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) (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)) (binary_expression left: (pointer_expression argument: (cast_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))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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)))))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (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))))))) (return_statement (identifier)) (labeled_statement label: (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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) (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: (binary_expression left: (binary_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))))) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))))) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))))) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))))) index: (number_literal)) right: (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: (identifier))) arguments: (argument_list (binary_expression left: (identifier) 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 (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)) (binary_expression left: (pointer_expression argument: (cast_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) (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)) (binary_expression left: (pointer_expression argument: (cast_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 (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)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (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))) (do_statement body: (compound_statement (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)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (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: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (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: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) 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: (identifier))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (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)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (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: (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: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)) 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: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (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: (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: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (identifier))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (do_statement body: (compound_statement (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)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (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: (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (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: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) 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: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (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)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (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: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)) 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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) 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))))) (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: (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: (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: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) 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)))) (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)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_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: (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: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_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: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (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)))))) (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: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (goto_statement label: (statement_identifier))) (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: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (goto_statement label: (statement_identifier)))))

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

{
  bool bVar1;
  bool bVar2;
  int iVar3;
  uint uVar4;
  int iVar5;
  double *pdVar6;
  double *pdVar7;
  double *pdVar8;
  int iVar9;
  double *pdVar10;
  double *pdVar11;
  undefined4 *puVar12;
  undefined4 *puVar13;
  uint uVar14;
  int iVar15;
  int iVar16;
  int iVar17;
  int iVar18;
  int iVar19;
  int iVar20;
  double *pdVar21;
  undefined4 *puVar22;
  undefined4 *puVar23;
  undefined4 *puVar24;
  undefined4 *puVar25;
  undefined4 uVar26;
  undefined4 uVar27;
  undefined4 uVar28;
  int iVar29;
  uint uVar30;
  double *pdVar31;
  int iVar32;
  int iVar33;
  uint uVar34;
  int iVar35;
  undefined *puVar36;
  code *pcVar37;
  int iVar38;
  double dVar39;
  double dVar40;
  undefined8 uVar41;
  double dVar42;
  double dVar43;
  double dVar44;
  undefined8 uVar45;
  double dVar46;
  double dVar47;
  double dVar48;
  double dVar49;
  double dVar50;
  double dVar51;
  double dVar52;
  double dVar53;
  double dVar54;
  double dVar55;
  double dVar56;
  double dVar57;
  double dVar58;
  double dVar59;
  undefined8 uVar60;
  double dVar61;
  double dVar62;
  double dVar63;
  double dVar64;
  double dStack_2b8;
  double dStack_2b0;
  double dStack_2a8;
  double dStack_2a0;
  double dStack_288;
  double dStack_280;
  double dStack_278;
  double dStack_270;
  double dStack_260;
  double dStack_258;
  double dStack_250;
  double dStack_248;
  double dStack_240;
  double dStack_238;
  uint uStack_22c;
  uint uStack_1d0;
  int iStack_188;
  double *pdStack_e8;
  double local_d8 [2];
  undefined4 local_c8;
  double local_b0;
  double local_88;
  double local_80;
  double local_58;
  double adStack_38 [2];
  undefined4 local_24;
  int local_c;
  
  puVar36 = PTR___stack_chk_guard_003a9230;
  pdStack_e8 = local_d8;
  local_c = *(int *)PTR___stack_chk_guard_003a9230;
  puVar13 = param_3;
  pdVar6 = pdStack_e8;
  pdVar7 = pdStack_e8;
  do {
    do {
      pdVar8 = pdVar6;
      puVar12 = puVar13;
      puVar13 = puVar12 + 4;
      uVar28 = puVar12[1];
      uVar27 = puVar12[2];
      uVar26 = puVar12[3];
      *(undefined4 *)pdVar8 = *puVar12;
      *(undefined4 *)((int)pdVar8 + 4) = uVar28;
      *(undefined4 *)(pdVar8 + 1) = uVar27;
      *(undefined4 *)((int)pdVar8 + 0xc) = uVar26;
      pdVar6 = pdVar8 + 2;
    } while (puVar13 != param_3 + 8);
    pdVar7 = pdVar7 + 5;
    uVar26 = puVar12[5];
    *(undefined4 *)(pdVar8 + 2) = *puVar13;
    *(undefined4 *)((int)pdVar8 + 0x14) = uVar26;
    puVar13 = param_3;
    pdVar6 = pdVar7;
  } while (pdVar7 != adStack_38);
  dVar39 = *(double *)(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + 0x47c8);
  local_24 = 0;
  local_c8 = 4;
  local_b0 = local_b0 + dVar39;
  local_88 = local_88 + dVar39;
  local_80 = local_80 + dVar39;
  local_58 = local_58 + dVar39;
  uVar4 = FUN_000a2d58();
  if (local_c == *(int *)puVar36) {
    return uVar4;
  }
  iVar17 = local_c;
  puVar36 = PTR___stack_chk_fail_003a9064;
  (*(code *)PTR___stack_chk_fail_003a9064)();
  if (*(int *)(iVar17 + 0x3350) != 0) {
    (**(code **)(puVar36 + 0x3044d0))
              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,
               0x168f,*(int *)(puVar36 + 0x303bd8) + 0x3dd8);
  }
  iVar5 = (**(code **)(puVar36 + 0x3044ec))(0,param_2);
  puVar13 = (undefined4 *)(iVar5 + 0x48);
  puVar12 = (undefined4 *)(param_2 + 0xa0);
  do {
    puVar23 = puVar12;
    puVar22 = puVar13;
    puVar12 = puVar23 + 4;
    uVar28 = puVar23[1];
    uVar27 = puVar23[2];
    uVar26 = puVar23[3];
    *puVar22 = *puVar23;
    puVar22[1] = uVar28;
    puVar22[2] = uVar27;
    puVar22[3] = uVar26;
    puVar13 = puVar22 + 4;
  } while (puVar12 != (undefined4 *)(param_2 + 0xf0));
  uVar26 = puVar23[5];
  iVar18 = *(int *)(iVar5 + 0x1a8);
  puVar22[4] = *puVar12;
  puVar22[5] = uVar26;
  if (iVar18 != 0) {
    uVar26 = (**(code **)(puVar36 + 0x30423c))();
    *(undefined4 *)(iVar5 + 0x1a8) = uVar26;
  }
  if (*(int *)(iVar5 + 0x1ac) != 0) {
    uVar26 = (**(code **)(puVar36 + 0x304b20))(*(int *)(iVar5 + 0x1ac),0,0,1,param_4);
    *(undefined4 *)(iVar5 + 0x1a8) = uVar26;
  }
  iVar18 = *(int *)((int)pdStack_e8 + 0x14);
  *(undefined4 *)(iVar5 + 0xec) = 0;
  *(undefined4 *)(iVar5 + 0xe8) = 0;
  *(undefined4 *)(iVar5 + 0x1b4) = 0;
  *(undefined4 *)(iVar5 + 0x1b0) = 0;
  *(undefined4 *)(iVar5 + 0x240) = 2;
  if (iVar18 != 0) {
    iVar18 = *(int *)(puVar36 + 0x303bd0);
    iVar19 = *(int *)(puVar36 + 0x303bd8);
    uStack_1d0 = 1;
    dVar39 = *(double *)(iVar18 + 0x13f8);
    iVar15 = *(int *)(puVar36 + 0x303bd0);
    dVar40 = *(double *)(iVar15 + 0x1410);
    uVar41 = *(undefined8 *)(iVar19 + 0x34a0);
LAB_000a4e98:
    iVar29 = *(int *)(pdStack_e8 + 2);
    if (iVar29 == 1) {
      iVar29 = 0x28;
      goto LAB_000a6620;
    }
    pdVar6 = (double *)(**(code **)(puVar36 + 0x3047fc))(iVar29 + 2,0x28);
    if (pdVar6 != (double *)0x0) {
      iVar32 = iVar29 * 0x28;
      (**(code **)(puVar36 + 0x304648))(pdVar6,pdStack_e8,iVar32);
      pdVar7 = pdVar6 + iVar29 * 5;
      if ((ABS(pdStack_e8[iVar29 * 5 + -5] - *pdStack_e8) < dVar39) &&
         (ABS((pdStack_e8 + iVar29 * 5 + -5)[1] - pdStack_e8[1]) < dVar39)) {
        if (*(int *)(param_2 + 0x248) - 1U < 2) {
          pdVar8 = pdStack_e8 + 5;
          do {
            pdVar21 = pdVar7;
            pdVar11 = pdVar8;
            pdVar8 = pdVar11 + 2;
            uVar28 = *(undefined4 *)(pdVar11 + 1);
            uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);
            uVar27 = *(undefined4 *)pdVar11;
            *(undefined4 *)((int)pdVar21 + 4) = *(undefined4 *)((int)pdVar11 + 4);
            *(undefined4 *)(pdVar21 + 1) = uVar28;
            *(undefined4 *)pdVar21 = uVar27;
            *(undefined4 *)((int)pdVar21 + 0xc) = uVar26;
            pdVar7 = pdVar21 + 2;
          } while (pdVar8 != pdStack_e8 + 9);
          iVar32 = iVar32 + 0x28;
          uVar26 = *(undefined4 *)pdVar8;
          pdVar7 = pdVar6 + iVar29 * 5 + 5;
          *(undefined4 *)((int)pdVar21 + 0x14) = *(undefined4 *)((int)pdVar11 + 0x14);
          *(undefined4 *)(pdVar21 + 2) = uVar26;
          iVar29 = iVar29 + 1;
        }
        iStack_188 = 1;
        bVar2 = true;
        bVar1 = iVar29 < 2;
        *(undefined4 *)((int)pdVar7 + 0x14) = 0;
        if (bVar1) goto LAB_000a6124;
LAB_000a4fe8:
        dVar61 = *(double *)(iVar18 + 0x13f8);
        dStack_260 = pdVar6[5] - *pdVar6;
        dStack_258 = pdVar6[6] - pdVar6[1];
        if ((dVar61 <= ABS(dStack_260)) || (dVar61 <= ABS(dStack_258))) {
          iVar38 = 1;
        }
        else {
          iVar38 = 1;
          pdVar7 = pdVar6 + 10;
          do {
            iVar38 = iVar38 + 1;
            if (iVar38 == iVar29) {
              iVar16 = *(int *)(param_2 + 0x244);
              iVar38 = iVar29;
              goto joined_r0x000a50f8;
            }
            dStack_260 = *pdVar7 - *pdVar6;
            dStack_258 = pdVar7[1] - pdVar6[1];
          } while ((ABS(dStack_260) < dVar61) && (pdVar7 = pdVar7 + 5, ABS(dStack_258) < dVar61));
        }
LAB_000a5110:
        uVar4 = iVar29 * 2;
        pdVar7 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);
        pdVar8 = (double *)(**(code **)(puVar36 + 0x3047fc))(uVar4 + 0x618,0x10);
        if (pdVar7 == (double *)0x0) {
          if (pdVar8 != (double *)0x0) {
            (**(code **)(puVar36 + 0x3042b0))(pdVar8);
          }
LAB_000a6cbc:
          (**(code **)(puVar36 + 0x3042b0))(pdVar6);
          uVar26 = 0x1c93;
          goto LAB_000a5724;
        }
        if (pdVar8 == (double *)0x0) {
          (**(code **)(puVar36 + 0x3042b0))(pdVar7);
          goto LAB_000a6cbc;
        }
        if (ABS(dStack_260) < *(double *)(iVar18 + 0x13f8)) {
          dVar61 = 0.0;
          if (0.0 <= dStack_260) {
            iVar16 = *(int *)(puVar36 + 0x303bd8);
            if (dStack_258 < 0.0) goto LAB_000a56e8;
          }
          else {
            iVar16 = *(int *)(puVar36 + 0x303bd8);
            if (0.0 <= dStack_258) {
LAB_000a56e8:
              dVar52 = *(double *)(iVar16 + 0x47d0);
              goto LAB_000a51b0;
            }
          }
          dVar52 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);
        }
        else if (ABS(dStack_258) < *(double *)(iVar18 + 0x13f8)) {
          dVar52 = 0.0;
          if (0.0 <= dStack_258) {
            iVar16 = *(int *)(puVar36 + 0x303bd8);
            if (dStack_260 < 0.0) goto LAB_000a684c;
          }
          else {
            iVar16 = *(int *)(puVar36 + 0x303bd8);
            if (0.0 <= dStack_260) {
LAB_000a684c:
              dVar61 = *(double *)(iVar16 + 0x47d0);
              goto LAB_000a51b0;
            }
          }
          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);
        }
        else {
          dVar52 = dStack_258 / dStack_260;
          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78) / dVar52;
        }
LAB_000a51b0:
        dVar42 = (double)(**(code **)(puVar36 + 0x304288))(param_2 + 0x18);
        iVar16 = *(int *)(param_2 + 0x24c) * *(int *)(param_2 + 0x24c);
        dVar42 = dVar42 * *(double *)(param_2 + 0x1b0) *
                 *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1400);
        dVar46 = (double)iVar16;
        if (iVar16 < 0) {
          dVar46 = dVar46 + *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1418);
        }
        dVar46 = dVar46 * dVar42 * dVar42;
        if (*(int *)(param_2 + 0x244) == 3) {
          iVar16 = *(int *)(puVar36 + 0x303bd0);
          if (!bVar2) {
            if (bVar1) {
              dVar43 = 0.0;
              if (iVar29 == 1) {
                dVar53 = 0.0;
                iVar16 = 1;
LAB_000a6998:
                pdVar11 = pdVar6 + (iVar16 + -1) * 5;
              }
              else {
                pdVar11 = pdVar6 + 5;
                dVar53 = 0.0;
              }
            }
            else {
              dVar64 = *(double *)(iVar18 + 0x13f8);
              dVar53 = *pdVar6 - pdVar6[5];
              dVar43 = pdVar6[1] - pdVar6[6];
              if ((dVar64 <= ABS(dVar53)) || (dVar64 <= ABS(dVar43))) {
                pdVar11 = pdVar6 + 5;
              }
              else {
                iVar33 = 1;
                pdVar21 = pdVar6 + 10;
                do {
                  pdVar11 = pdVar21;
                  iVar33 = iVar33 + 1;
                  iVar16 = iVar29;
                  if (iVar33 == iVar29) goto LAB_000a6998;
                  dVar53 = *pdVar6 - *pdVar11;
                  dVar43 = pdVar6[1] - pdVar11[1];
                } while ((ABS(dVar53) < dVar64) && (pdVar21 = pdVar11 + 5, ABS(dVar43) < dVar64));
              }
            }
            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);
            iVar16 = iVar29 + -2;
            dVar50 = pdVar11[1];
            pdVar31 = (double *)((int)pdVar6 + iVar32 + -0x28);
            pdVar21 = pdVar6 + iVar16 * 5;
            *pdVar6 = *pdVar11 + (dVar53 * (dVar42 + dVar64)) / dVar64;
            pdVar6[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;
            if (-1 < iVar16) {
              dVar64 = *(double *)(iVar18 + 0x13f8);
              dVar53 = *pdVar31 - *pdVar21;
              dVar43 = pdVar31[1] - pdVar21[1];
              if (ABS(dVar53) < dVar64) {
                pdVar11 = pdVar6 + (iVar29 + -3) * 5;
                do {
                  pdVar21 = pdVar11;
                  if (dVar64 <= ABS(dVar43)) {
                    pdVar21 = pdVar6 + iVar16 * 5;
                    break;
                  }
                  iVar16 = iVar16 + -1;
                  if (iVar16 == -1) break;
                  dVar53 = *pdVar31 - *pdVar21;
                  dVar43 = pdVar31[1] - pdVar21[1];
                  pdVar11 = pdVar21 + -5;
                } while (ABS(dVar53) < dVar64);
              }
            }
            dVar64 = (double)(**(code **)(puVar36 + 0x304a08))(dVar53,dVar43);
            dVar50 = pdVar21[1];
            *pdVar31 = *pdVar21 + (dVar53 * (dVar42 + dVar64)) / dVar64;
            pdVar31[1] = dVar50 + (dVar43 * (dVar42 + dVar64)) / dVar64;
            goto LAB_000a5220;
          }
        }
        else {
LAB_000a5220:
          iVar16 = *(int *)(puVar36 + 0x303bd0);
        }
        dVar43 = dVar42 * dVar42;
        dVar53 = dVar43 / (dVar61 * dVar61 + *(double *)(iVar16 + 0x1438));
        dVar64 = SQRT(dVar53);
        if (dVar53 < 0.0) {
          (**(code **)(puVar36 + 0x304770))();
        }
        dVar61 = dVar61 * dVar64;
        pdVar11 = pdVar6 + iVar38 * 5;
        dVar58 = *pdVar11;
        dVar62 = pdVar11[1];
        dVar57 = dVar61 + pdVar6[1];
        dVar55 = pdVar6[1] - dVar61;
        dVar53 = dVar64 + *pdVar6;
        dStack_238 = dVar62 - dVar61;
        dStack_240 = dVar58 - dVar64;
        dVar56 = *pdVar6 - dVar64;
        dVar51 = dVar56;
        dVar50 = dVar57;
        dStack_250 = dVar64 + dVar58;
        dStack_248 = dVar61 + dVar62;
        if (0.0 < dVar64 * dStack_258 - dVar61 * dStack_260) {
          dVar51 = dVar53;
          dVar50 = dVar55;
          dVar53 = dVar56;
          dVar55 = dVar57;
          dStack_250 = dStack_240;
          dStack_248 = dStack_238;
          dStack_240 = dVar64 + dVar58;
          dStack_238 = dVar61 + dVar62;
        }
        iVar32 = iVar38 + 1;
        *pdVar8 = dVar51;
        pdVar8[1] = dVar55;
        *pdVar7 = dVar53;
        pdVar7[1] = dVar50;
        if (iVar32 < iVar29) {
          iVar20 = *(int *)(puVar36 + 0x303bd8);
          iVar33 = 1;
          iVar35 = 1;
          dVar61 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a78);
          dVar64 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d8);
          uStack_22c = uVar4;
          do {
            dVar44 = pdVar11[6];
            dVar47 = pdVar11[5];
            dVar48 = dVar44 - dVar62;
            dVar54 = dVar47 - dVar58;
            dVar49 = dVar47 - dVar58;
            dVar56 = dStack_238;
            dVar57 = dStack_240;
            dVar59 = dStack_248;
            dVar63 = dStack_250;
            if (*(double *)(iVar20 + -0x2e38) <=
                dVar54 * dVar54 + (dVar44 - dVar62) * (dVar44 - dVar62)) {
              if (ABS(dVar54) < *(double *)(iVar18 + 0x13f8)) {
                dVar56 = 0.0;
                dVar57 = dVar43;
                if (0.0 <= dVar54) {
                  if (0.0 <= dVar44 - dVar62) goto LAB_000a53e0;
                }
                else if (dVar44 - dVar62 < 0.0) {
LAB_000a53e0:
                  dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);
                  goto joined_r0x000a568c;
                }
                dVar54 = *(double *)(*(int *)(puVar36 + 0x303bd8) + 0x47d0);
              }
              else if (ABS(dVar48) < *(double *)(iVar18 + 0x13f8)) {
                dVar54 = 0.0;
                dVar57 = dVar43 / dVar64;
                if (0.0 <= dVar44 - dVar62) {
                  iVar9 = *(int *)(puVar36 + 0x303bd8);
                  if (dVar47 - dVar58 < 0.0) goto LAB_000a5880;
                }
                else {
                  iVar9 = *(int *)(puVar36 + 0x303bd8);
                  if (0.0 <= dVar47 - dVar58) {
LAB_000a5880:
                    dVar56 = *(double *)(iVar9 + 0x47d0);
                    goto joined_r0x000a568c;
                  }
                }
                dVar56 = *(double *)(*(int *)(puVar36 + 0x303bd0) + 0x1a68);
              }
              else {
                dVar54 = (dVar44 - dVar62) / (dVar47 - dVar58);
                dVar56 = dVar61 / dVar54;
                dVar57 = dVar43 / (dVar56 * dVar56 + *(double *)(iVar16 + 0x1438));
              }
joined_r0x000a568c:
              pdVar21 = pdVar6 + iVar38 * 5;
              dVar59 = SQRT(dVar57);
              if (dVar57 < 0.0) {
                (**(code **)(puVar36 + 0x304770))();
                dVar58 = *pdVar21;
                dVar62 = pdVar21[1];
                dVar47 = pdVar11[5];
                dVar44 = pdVar11[6];
              }
              dVar56 = dVar56 * dVar59;
              dStack_2a8 = dVar47 - dVar59;
              dStack_2a0 = dVar44 - dVar56;
              dStack_278 = dVar58 - dVar59;
              dStack_270 = dVar62 - dVar56;
              dStack_2b8 = dVar59 + dVar47;
              dStack_2b0 = dVar56 + dVar44;
              dStack_288 = dVar59 + dVar58;
              dStack_280 = dVar56 + dVar62;
              if (0.0 < dVar48 * dVar59 - dVar49 * dVar56) {
                dStack_2b8 = dStack_2a8;
                dStack_2b0 = dStack_2a0;
                dStack_2a8 = dVar59 + dVar47;
                dStack_2a0 = dVar56 + dVar44;
                dStack_288 = dStack_278;
                dStack_280 = dStack_270;
                dStack_278 = dVar59 + dVar58;
                dStack_270 = dVar56 + dVar62;
              }
              dVar56 = dVar52 - dVar54;
              dVar58 = dStack_250;
              dVar62 = dStack_248;
              dVar44 = dStack_238;
              dVar47 = dStack_240;
              if (*(double *)(iVar18 + 0x13f8) <= ABS(dVar56)) {
                dVar58 = (((dVar53 * dVar52 - dVar50) - dVar54 * dStack_2b8) + dStack_2b0) / dVar56;
                dVar47 = (((dVar52 * dVar51 - dVar55) - dVar54 * dStack_2a8) + dStack_2a0) / dVar56;
                dVar62 = (dVar58 - dVar53) * dVar52 + dVar50;
                dVar44 = (dVar47 - dVar51) * dVar52 + dVar55;
              }
              if ((int)uStack_22c <= iVar35 + 0x618) {
                if (uStack_22c < 0xfffff9e8) {
                  pdVar7 = (double *)
                           (**(code **)(puVar36 + 0x304710))(pdVar7,uStack_22c + 0xc30,0x10);
                  uStack_22c = uStack_22c + 0x618;
                }
                else {
                  pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);
                }
              }
              if (iVar33 + 0x618 < (int)uVar4) {
                if (pdVar7 == (double *)0x0) {
LAB_000a5700:
                  (**(code **)(puVar36 + 0x3042b0))(pdVar8);
LAB_000a5710:
                  pcVar37 = *(code **)(puVar36 + 0x3042b0);
                  goto LAB_000a5714;
                }
              }
              else {
                if (0xfffff9e7 < uVar4) {
                  pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);
                  if (pdVar7 != (double *)0x0) goto LAB_000a5594;
LAB_000a598c:
                  if (pdVar8 != (double *)0x0) goto LAB_000a5700;
                  pcVar37 = *(code **)(puVar36 + 0x3042b0);
LAB_000a5714:
                  (*pcVar37)(pdVar6);
                  uVar26 = 0x1d17;
                  goto LAB_000a5724;
                }
                pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);
                uVar4 = uVar4 + 0x618;
                if (pdVar7 == (double *)0x0) goto LAB_000a598c;
LAB_000a5594:
                if (pdVar8 == (double *)0x0) {
                  (**(code **)(puVar36 + 0x3042b0))(pdVar7);
                  goto LAB_000a5710;
                }
              }
              iVar9 = *(int *)(param_2 + 0x248);
              dVar51 = dStack_278;
              dVar50 = dStack_280;
              dVar53 = dStack_288;
              dVar55 = dStack_270;
              iVar38 = iVar32;
              dVar52 = dVar54;
              if (dVar49 * dStack_258 - dVar48 * dStack_260 <= 0.0) {
                if (iVar9 != 2) {
                  if (iVar9 == 3) {
                    pdVar21 = pdVar7 + iVar35 * 2;
                    pdVar8[iVar33 * 2] = dStack_240;
                    (pdVar8 + iVar33 * 2)[1] = dStack_238;
                    pdVar8[iVar33 * 2 + 2] = dStack_278;
                    (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;
                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +
                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {
                      *pdVar21 = dVar58;
                      pdVar21[1] = dVar62;
                      dStack_258 = dVar48;
                      dStack_260 = dVar49;
                      dVar56 = dStack_2a0;
                      dVar57 = dStack_2a8;
                      dVar59 = dStack_2b0;
                      dVar63 = dStack_2b8;
                      iVar33 = iVar33 + 2;
                      iVar35 = iVar35 + 1;
                    }
                    else {
                      *pdVar21 = dStack_250;
                      pdVar21[1] = dStack_248;
                      pdVar7[iVar35 * 2 + 2] = dStack_288;
                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;
                      dStack_258 = dVar48;
                      dStack_260 = dVar49;
                      dVar56 = dStack_2a0;
                      dVar57 = dStack_2a8;
                      dVar59 = dStack_2b0;
                      dVar63 = dStack_2b8;
                      iVar33 = iVar33 + 2;
                      iVar35 = iVar35 + 2;
                    }
                  }
                  else {
                    dStack_258 = dVar48;
                    dStack_260 = dVar49;
                    dVar56 = dStack_2a0;
                    dVar57 = dStack_2a8;
                    dVar59 = dStack_2b0;
                    dVar63 = dStack_2b8;
                    if (iVar9 == 1) {
                      pdVar21 = pdVar7 + iVar35 * 2;
                      pdVar31 = pdVar8 + iVar33 * 2;
                      if (dVar46 < (dVar47 - dVar58) * (dVar47 - dVar58) +
                                   (dVar44 - dVar62) * (dVar44 - dVar62)) goto LAB_000a607c;
LAB_000a58dc:
                      iVar33 = iVar33 + 1;
                      iVar35 = iVar35 + 1;
                      *pdVar31 = dVar47;
                      pdVar31[1] = dVar44;
                      *pdVar21 = dVar58;
                      pdVar21[1] = dVar62;
                      dStack_258 = dVar48;
                      dStack_260 = dVar49;
                      dVar56 = dStack_2a0;
                      dVar57 = dStack_2a8;
                      dVar59 = dStack_2b0;
                      dVar63 = dStack_2b8;
                    }
                  }
                  goto joined_r0x000a5a50;
                }
                iVar9 = iVar35 + 1;
                pdVar31 = pdVar7 + iVar35 * 2;
                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=
                    dVar46) {
                  *pdVar31 = dVar58;
                  pdVar31[1] = dVar62;
                }
                else {
                  iVar9 = iVar35 + 2;
                  *pdVar31 = dStack_250;
                  pdVar31[1] = dStack_248;
                  pdVar7[iVar35 * 2 + 2] = dStack_288;
                  (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;
                }
                dVar58 = *pdVar21;
                dVar57 = pdVar21[1];
                dVar52 = dVar57;
                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))
                                           (dStack_238 - dVar57,dStack_240 - dVar58);
                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))
                                           (dStack_270 - dVar52,dStack_278 - dVar58);
                if (dVar52 < dVar56) {
                  dVar52 = dVar52 + *(double *)(iVar19 + 0x34a0);
                }
                dVar52 = dVar52 - dVar56;
                dVar62 = *(double *)(iVar16 + 0x1438) / dVar42;
                dVar59 = SQRT(dVar62);
                if (dVar62 < 0.0) {
                  (**(code **)(puVar36 + 0x304770))();
                }
                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar52 / (dVar59 + dVar59));
                dVar59 = *(double *)(iVar15 + 0x1410);
                if (dVar62 < dVar59) {
                  uVar14 = (uint)dVar62;
                }
                else {
                  uVar14 = (int)(dVar62 - dVar59) | 0x80000000;
                }
                if ((int)uStack_22c <= iVar9 + 0x618) {
                  if (uStack_22c < 0xfffff9e8) {
                    iVar35 = uStack_22c + 0xc30;
                    uStack_22c = uStack_22c + 0x618;
                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar35,0x10);
                  }
                  else {
                    pdVar7 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar7);
                  }
                }
                if (uVar14 + 0x618 < 0x4000001) {
                  if ((int)uVar4 <= (int)(iVar33 + 0x618 + uVar14)) {
                    pcVar37 = *(code **)(puVar36 + 0x3042b0);
                    if (~uVar4 < uVar14 + 0x618) goto LAB_000a67d4;
                    iVar35 = uVar14 + uVar4;
                    uVar4 = iVar35 + 0x618;
                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,iVar35 + 0xc30,0x10)
                    ;
                    goto LAB_000a64c4;
                  }
                  if (pdVar7 == (double *)0x0) {
LAB_000a6884:
                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);
LAB_000a6d2c:
                    pcVar37 = *(code **)(puVar36 + 0x3042b0);
                    goto LAB_000a6d30;
                  }
                }
                else {
                  pcVar37 = *(code **)(puVar36 + 0x3042b0);
LAB_000a67d4:
                  pdVar8 = (double *)(*pcVar37)(pdVar8);
LAB_000a64c4:
                  if (pdVar7 == (double *)0x0) {
                    if (pdVar8 != (double *)0x0) goto LAB_000a6884;
                    pcVar37 = *(code **)(puVar36 + 0x3042b0);
LAB_000a6d30:
                    (*pcVar37)(pdVar6);
                    uVar26 = 0x1d4f;
                    goto LAB_000a5724;
                  }
                  if (pdVar8 == (double *)0x0) {
                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);
                    goto LAB_000a6d2c;
                  }
                }
                pdVar21 = pdVar8 + iVar33 * 2;
                *pdVar21 = dStack_240;
                pdVar21[1] = dStack_238;
                if (1 < (int)uVar14) {
                  uVar60 = *(undefined8 *)(iVar19 + 0x34a0);
                  uVar30 = 1;
                  do {
                    uVar34 = uVar30 + 1;
                    dVar59 = ((double)(int)uVar30 * dVar52) / (double)(int)uVar14 + dVar56;
                    uVar45 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar60);
                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar45);
                    pcVar37 = *(code **)(puVar36 + 0x304ca8);
                    pdVar21[2] = dVar42 * dVar62 + dVar58;
                    uVar45 = (*pcVar37)(dVar59,uVar60);
                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar45);
                    pdVar21[3] = dVar42 * dVar62 + dVar57;
                    uVar30 = uVar34;
                    pdVar21 = pdVar21 + 2;
                  } while (uVar34 != uVar14);
                }
                *pdVar8 = dStack_278;
                pdVar8[1] = dStack_270;
                dStack_258 = dVar48;
                dStack_260 = dVar49;
                dVar56 = dStack_2a0;
                dVar57 = dStack_2a8;
                dVar59 = dStack_2b0;
                dVar63 = dStack_2b8;
                iVar33 = 1;
                iVar35 = iVar9;
                dVar52 = dVar54;
              }
              else {
                if (iVar9 != 2) {
                  if (iVar9 == 3) {
                    iVar9 = iVar35 * 2;
                    iVar3 = iVar35 * 2;
                    iVar35 = iVar35 + 2;
                    pdVar7[iVar9] = dStack_250;
                    (pdVar7 + iVar9)[1] = dStack_248;
                    pdVar21 = pdVar8 + iVar33 * 2;
                    pdVar7[iVar3 + 2] = dStack_288;
                    (pdVar7 + iVar3 + 2)[1] = dStack_280;
                    if ((dVar47 - dVar58) * (dVar47 - dVar58) +
                        (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) {
                      *pdVar21 = dVar47;
                      pdVar21[1] = dVar44;
                      dStack_258 = dVar48;
                      dStack_260 = dVar49;
                      dVar56 = dStack_2a0;
                      dVar57 = dStack_2a8;
                      dVar59 = dStack_2b0;
                      dVar63 = dStack_2b8;
                      iVar33 = iVar33 + 1;
                    }
                    else {
                      *pdVar21 = dStack_240;
                      pdVar21[1] = dStack_238;
                      pdVar8[iVar33 * 2 + 2] = dStack_278;
                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;
                      dStack_258 = dVar48;
                      dStack_260 = dVar49;
                      dVar56 = dStack_2a0;
                      dVar57 = dStack_2a8;
                      dVar59 = dStack_2b0;
                      dVar63 = dStack_2b8;
                      iVar33 = iVar33 + 2;
                    }
                  }
                  else {
                    dStack_258 = dVar48;
                    dStack_260 = dVar49;
                    dVar56 = dStack_2a0;
                    dVar57 = dStack_2a8;
                    dVar59 = dStack_2b0;
                    dVar63 = dStack_2b8;
                    if (iVar9 == 1) {
                      pdVar21 = pdVar7 + iVar35 * 2;
                      pdVar31 = pdVar8 + iVar33 * 2;
                      if ((dVar47 - dVar58) * (dVar47 - dVar58) +
                          (dVar44 - dVar62) * (dVar44 - dVar62) <= dVar46) goto LAB_000a58dc;
LAB_000a607c:
                      *pdVar31 = dStack_240;
                      pdVar31[1] = dStack_238;
                      pdVar8[iVar33 * 2 + 2] = dStack_278;
                      (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;
                      *pdVar21 = dStack_250;
                      pdVar21[1] = dStack_248;
                      pdVar7[iVar35 * 2 + 2] = dStack_288;
                      (pdVar7 + iVar35 * 2 + 2)[1] = dStack_280;
                      dStack_258 = dVar48;
                      dStack_260 = dVar49;
                      dVar56 = dStack_2a0;
                      dVar57 = dStack_2a8;
                      dVar59 = dStack_2b0;
                      dVar63 = dStack_2b8;
                      iVar33 = iVar33 + 2;
                      iVar35 = iVar35 + 2;
                    }
                  }
                  goto joined_r0x000a5a50;
                }
                iVar9 = iVar33 + 1;
                pdVar31 = pdVar8 + iVar33 * 2;
                if ((dVar47 - dVar58) * (dVar47 - dVar58) + (dVar44 - dVar62) * (dVar44 - dVar62) <=
                    dVar46) {
                  *pdVar31 = dVar47;
                  pdVar31[1] = dVar44;
                }
                else {
                  iVar9 = iVar33 + 2;
                  *pdVar31 = dStack_240;
                  pdVar31[1] = dStack_238;
                  pdVar8[iVar33 * 2 + 2] = dStack_278;
                  (pdVar8 + iVar33 * 2 + 2)[1] = dStack_270;
                }
                dVar57 = *pdVar21;
                dVar58 = pdVar21[1];
                dVar52 = dVar57;
                dVar56 = (double)(**(code **)(puVar36 + 0x3042f8))
                                           (dStack_248 - dVar58,dStack_250 - dVar57);
                dVar52 = (double)(**(code **)(puVar36 + 0x3042f8))
                                           (dStack_280 - dVar58,dStack_288 - dVar52);
                if (dVar56 < dVar52) {
                  dVar56 = dVar56 + *(double *)(iVar19 + 0x34a0);
                }
                dVar62 = dVar56 - dVar52;
                dVar59 = *(double *)(iVar16 + 0x1438) / dVar42;
                dVar63 = SQRT(dVar59);
                if (dVar59 < 0.0) {
                  (**(code **)(puVar36 + 0x304770))();
                }
                dVar62 = (double)(**(code **)(puVar36 + 0x303f10))(dVar62 / (dVar63 + dVar63));
                if (dVar62 < dVar40) {
                  uVar30 = (uint)dVar62;
                  uVar14 = uVar30 + 0x618;
                  pcVar37 = *(code **)(puVar36 + 0x3042b0);
                  if (uVar14 < 0x4000001) goto LAB_000a5ec0;
LAB_000a66a4:
                  pdVar7 = (double *)(*pcVar37)(pdVar7);
                }
                else {
                  uVar30 = (int)(dVar62 - dVar40) | 0x80000000;
                  uVar14 = uVar30 + 0x618;
                  if (0x4000000 < uVar14) {
                    pcVar37 = *(code **)(puVar36 + 0x3042b0);
                    goto LAB_000a66a4;
                  }
LAB_000a5ec0:
                  if ((int)uStack_22c <= (int)(iVar35 + 0x618 + uVar30)) {
                    pcVar37 = *(code **)(puVar36 + 0x3042b0);
                    if (~uStack_22c < uVar14) goto LAB_000a66a4;
                    iVar33 = uStack_22c + uVar30;
                    uStack_22c = iVar33 + 0x618;
                    pdVar7 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar7,iVar33 + 0xc30,0x10)
                    ;
                  }
                }
                if (iVar9 + 0x618 < (int)uVar4) {
                  if (pdVar7 == (double *)0x0) {
LAB_000a664c:
                    (**(code **)(puVar36 + 0x3042b0))(pdVar8);
LAB_000a665c:
                    pcVar37 = *(code **)(puVar36 + 0x3042b0);
                    goto LAB_000a6660;
                  }
                }
                else {
                  if (uVar4 < 0xfffff9e8) {
                    pdVar8 = (double *)(**(code **)(puVar36 + 0x304710))(pdVar8,uVar4 + 0xc30,0x10);
                    uVar4 = uVar4 + 0x618;
                  }
                  else {
                    pdVar8 = (double *)(**(code **)(puVar36 + 0x3042b0))(pdVar8);
                  }
                  if (pdVar7 == (double *)0x0) {
                    if (pdVar8 != (double *)0x0) goto LAB_000a664c;
                    pcVar37 = *(code **)(puVar36 + 0x3042b0);
LAB_000a6660:
                    (*pcVar37)(pdVar6);
                    uVar26 = 0x1d98;
                    goto LAB_000a5724;
                  }
                  if (pdVar8 == (double *)0x0) {
                    (**(code **)(puVar36 + 0x3042b0))(pdVar7);
                    goto LAB_000a665c;
                  }
                }
                pdVar21 = pdVar7 + iVar35 * 2;
                *pdVar21 = dStack_250;
                pdVar21[1] = dStack_248;
                if (1 < (int)uVar30) {
                  dVar52 = dVar52 - dVar56;
                  uVar14 = 1;
                  do {
                    uVar34 = uVar14 + 1;
                    dVar59 = ((double)(int)uVar14 * dVar52) / (double)(int)uVar30 + dVar56;
                    uVar60 = (**(code **)(puVar36 + 0x304ca8))(dVar59,uVar41);
                    dVar62 = (double)(**(code **)(puVar36 + 0x304608))(uVar60);
                    pcVar37 = *(code **)(puVar36 + 0x304ca8);
                    pdVar21[2] = dVar42 * dVar62 + dVar57;
                    uVar60 = (*pcVar37)(dVar59,uVar41);
                    dVar62 = (double)(**(code **)(puVar36 + 0x304034))(uVar60);
                    pdVar21[3] = dVar42 * dVar62 + dVar58;
                    uVar14 = uVar34;
                    pdVar21 = pdVar21 + 2;
                  } while (uVar34 != uVar30);
                }
                *pdVar7 = dStack_288;
                pdVar7[1] = dStack_280;
                dStack_258 = dVar48;
                dStack_260 = dVar49;
                dVar56 = dStack_2a0;
                dVar57 = dStack_2a8;
                dVar59 = dStack_2b0;
                dVar63 = dStack_2b8;
                iVar33 = iVar9;
                iVar35 = 1;
                dVar52 = dVar54;
              }
            }
joined_r0x000a5a50:
            dStack_250 = dVar63;
            dStack_248 = dVar59;
            dStack_240 = dVar57;
            dStack_238 = dVar56;
            if (iVar32 + 1 == iVar29) goto LAB_000a5a58;
            pdVar11 = pdVar11 + 5;
            iVar32 = iVar32 + 1;
            dVar58 = pdVar6[iVar38 * 5];
            dVar62 = (pdVar6 + iVar38 * 5)[1];
          } while( true );
        }
        iVar38 = 4;
        iVar32 = 0x10;
        iVar35 = 0x10;
        iVar29 = 2;
        goto LAB_000a5a70;
      }
      bVar1 = iVar29 < 2;
      iStack_188 = 0;
      bVar2 = false;
      *(undefined4 *)((int)pdVar7 + 0x14) = 0;
      if (!bVar1) goto LAB_000a4fe8;
LAB_000a6124:
      if (iVar29 != 1) {
        iVar38 = 1;
        dStack_258 = 0.0;
        dStack_260 = 0.0;
        goto LAB_000a5110;
      }
      iVar38 = 1;
      dStack_258 = 0.0;
      iVar16 = *(int *)(param_2 + 0x244);
      dStack_260 = 0.0;
joined_r0x000a50f8:
      if (iVar16 == 2) {
        pcVar37 = *(code **)(puVar36 + 0x304644);
        if (!bVar2) {
          iVar38 = iVar38 + -1;
          goto LAB_000a5110;
        }
      }
      else {
        pcVar37 = *(code **)(puVar36 + 0x304644);
      }
      puVar13 = (undefined4 *)(*pcVar37)(0x28);
      pdVar7 = pdVar6;
      puVar12 = puVar13;
      do {
        puVar22 = puVar12;
        pdVar8 = pdVar7;
        pdVar7 = pdVar8 + 2;
        uVar28 = *(undefined4 *)((int)pdVar8 + 4);
        uVar27 = *(undefined4 *)(pdVar8 + 1);
        uVar26 = *(undefined4 *)((int)pdVar8 + 0xc);
        *puVar22 = *(undefined4 *)pdVar8;
        puVar22[1] = uVar28;
        puVar22[2] = uVar27;
        puVar22[3] = uVar26;
        puVar12 = puVar22 + 4;
      } while (pdVar7 != pdVar6 + 4);
      uVar26 = *(undefined4 *)((int)pdVar8 + 0x14);
      pcVar37 = *(code **)(puVar36 + 0x3042b0);
      puVar22[4] = *(undefined4 *)pdVar7;
      puVar22[5] = uVar26;
      puVar13[4] = 0;
      (*pcVar37)(pdVar6);
      goto LAB_000a61cc;
    }
    uVar26 = 0x1c57;
LAB_000a5724:
    (**(code **)(puVar36 + 0x304210))
              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,
               uVar26,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,
               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);
    uStack_1d0 = 0;
    goto LAB_000a5774;
  }
  uStack_1d0 = 1;
LAB_000a5774:
  pcVar37 = *(code **)(puVar36 + 0x3042d8);
LAB_000a5778:
  (*pcVar37)(iVar5);
  if (*(int *)(iVar17 + 0x3350) != 0) {
    (**(code **)(puVar36 + 0x3044d0))
              (0x80,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45dc,
               0x16b4,*(int *)(puVar36 + 0x303bd8) + 0x3df8);
  }
  return uStack_1d0;
LAB_000a5a58:
  iVar29 = iVar35 + 1;
  iVar35 = iVar35 << 4;
  iVar32 = iVar33 << 4;
  iVar38 = iVar33 + 1 + iVar29;
LAB_000a5a70:
  pcVar37 = *(code **)(puVar36 + 0x3047fc);
  iVar38 = iStack_188 * 2 + iVar38;
  *(double *)((int)pdVar7 + iVar35) = dStack_250;
  ((double *)((int)pdVar7 + iVar35))[1] = dStack_248;
  *(double *)((int)pdVar8 + iVar32) = dStack_240;
  ((double *)((int)pdVar8 + iVar32))[1] = dStack_238;
  puVar13 = (undefined4 *)(*pcVar37)(iVar38 + 2,0x28);
  if (puVar13 == (undefined4 *)0x0) {
    (**(code **)(puVar36 + 0x304210))
              (param_4,*(int *)(puVar36 + 0x303bd8) + 0x38b0,*(int *)(puVar36 + 0x303bd8) + 0x45c8,
               0x1dbc,400,*(int *)(puVar36 + 0x303bd0) + 0x16f8,
               *(int *)(puVar36 + 0x303bd0) + 0x3e28,*(int *)(puVar36 + 0x303bd4) + -0x3688);
    (**(code **)(puVar36 + 0x3042b0))(pdVar7);
    (**(code **)(puVar36 + 0x3042b0))(pdVar8);
    (**(code **)(puVar36 + 0x3042b0))(pdVar6);
    uStack_1d0 = 0;
    goto LAB_000a5774;
  }
  pdVar31 = pdVar6 + 4;
  pdVar11 = pdVar6;
  puVar12 = puVar13;
  pdVar21 = pdVar7;
  puVar22 = puVar13;
  do {
    do {
      puVar23 = puVar12;
      pdVar10 = pdVar11 + 2;
      uVar28 = *(undefined4 *)((int)pdVar11 + 4);
      uVar27 = *(undefined4 *)(pdVar11 + 1);
      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);
      *puVar23 = *(undefined4 *)pdVar11;
      puVar23[1] = uVar28;
      puVar23[2] = uVar27;
      puVar23[3] = uVar26;
      pdVar11 = pdVar10;
      puVar12 = puVar23 + 4;
    } while (pdVar10 != pdVar31);
    pdVar10 = pdVar21 + 2;
    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);
    puVar23[4] = *(undefined4 *)pdVar31;
    puVar23[5] = uVar26;
    uVar28 = *(undefined4 *)((int)pdVar21 + 4);
    uVar27 = *(undefined4 *)(pdVar21 + 1);
    uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);
    *puVar22 = *(undefined4 *)pdVar21;
    puVar22[1] = uVar28;
    puVar22[2] = uVar27;
    puVar22[3] = uVar26;
    pdVar11 = pdVar6;
    puVar12 = puVar22 + 10;
    pdVar21 = pdVar10;
    puVar22 = puVar22 + 10;
  } while (pdVar7 + iVar29 * 2 != pdVar10);
  puVar22 = puVar13 + iVar29 * 10;
  puVar12 = puVar22;
  if (bVar2) {
    do {
      puVar23 = puVar12;
      pdVar21 = pdVar11 + 2;
      uVar28 = *(undefined4 *)((int)pdVar11 + 4);
      uVar27 = *(undefined4 *)(pdVar11 + 1);
      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);
      *puVar23 = *(undefined4 *)pdVar11;
      puVar23[1] = uVar28;
      puVar23[2] = uVar27;
      puVar23[3] = uVar26;
      pdVar11 = pdVar21;
      puVar12 = puVar23 + 4;
    } while (pdVar21 != pdVar31);
    iVar29 = iVar29 + 1;
    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);
    puVar23[4] = *(undefined4 *)(pdVar6 + 4);
    puVar23[5] = uVar26;
    uVar28 = puVar13[1];
    uVar27 = puVar13[2];
    uVar26 = puVar13[3];
    puVar12 = puVar13 + iVar29 * 10;
    *puVar22 = *puVar13;
    puVar22[1] = uVar28;
    puVar22[2] = uVar27;
    puVar22[3] = uVar26;
  }
  iStack_188 = iVar38 - iStack_188;
  if (iVar29 < iStack_188) {
    pdVar11 = pdVar6;
    puVar12 = puVar13 + iVar29 * 10;
    pdVar21 = pdVar8 + ((iStack_188 + 0xfffffff) - iVar29) * 2;
    puVar23 = puVar13 + iVar29 * 10;
    do {
      do {
        puVar25 = puVar12;
        pdVar10 = pdVar11 + 2;
        uVar28 = *(undefined4 *)((int)pdVar11 + 4);
        uVar27 = *(undefined4 *)(pdVar11 + 1);
        uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);
        *puVar25 = *(undefined4 *)pdVar11;
        puVar25[1] = uVar28;
        puVar25[2] = uVar27;
        puVar25[3] = uVar26;
        pdVar11 = pdVar10;
        puVar12 = puVar25 + 4;
      } while (pdVar10 != pdVar31);
      pdVar10 = pdVar21 + -2;
      uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);
      puVar25[4] = *(undefined4 *)pdVar31;
      puVar25[5] = uVar26;
      uVar28 = *(undefined4 *)((int)pdVar21 + 4);
      uVar27 = *(undefined4 *)(pdVar21 + 1);
      uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);
      *puVar23 = *(undefined4 *)pdVar21;
      puVar23[1] = uVar28;
      puVar23[2] = uVar27;
      puVar23[3] = uVar26;
      pdVar11 = pdVar6;
      puVar12 = puVar23 + 10;
      pdVar21 = pdVar10;
      puVar23 = puVar23 + 10;
    } while (pdVar8 + -2 != pdVar10);
    puVar12 = puVar13 + iStack_188 * 10;
    iVar29 = iStack_188;
  }
  puVar24 = puVar13 + (iVar29 + 1) * 10;
  pdVar11 = pdVar6;
  puVar23 = puVar12;
  puVar25 = puVar24;
  if (bVar2) {
    do {
      puVar25 = puVar23;
      pdVar21 = pdVar11 + 2;
      uVar28 = *(undefined4 *)((int)pdVar11 + 4);
      uVar27 = *(undefined4 *)(pdVar11 + 1);
      uVar26 = *(undefined4 *)((int)pdVar11 + 0xc);
      *puVar25 = *(undefined4 *)pdVar11;
      puVar25[1] = uVar28;
      puVar25[2] = uVar27;
      puVar25[3] = uVar26;
      pdVar11 = pdVar21;
      puVar23 = puVar25 + 4;
    } while (pdVar21 != pdVar31);
    uVar26 = *(undefined4 *)((int)pdVar6 + 0x24);
    puVar25[4] = *(undefined4 *)(pdVar6 + 4);
    puVar25[5] = uVar26;
    uVar27 = puVar22[0xb];
    uVar26 = puVar22[0xc];
    uVar28 = puVar22[0xd];
    *puVar12 = puVar22[10];
    puVar12[1] = uVar27;
    puVar12[2] = uVar26;
    puVar12[3] = uVar28;
    puVar25 = puVar13 + (iVar29 + 1) * 10 + 10;
    pdVar11 = pdVar6;
    puVar12 = puVar24;
    puVar23 = puVar24;
  }
  do {
    puVar22 = puVar12;
    pdVar21 = pdVar11;
    pdVar11 = pdVar21 + 2;
    uVar28 = *(undefined4 *)((int)pdVar21 + 4);
    uVar27 = *(undefined4 *)(pdVar21 + 1);
    uVar26 = *(undefined4 *)((int)pdVar21 + 0xc);
    *puVar22 = *(undefined4 *)pdVar21;
    puVar22[1] = uVar28;
    puVar22[2] = uVar27;
    puVar22[3] = uVar26;
    puVar12 = puVar22 + 4;
  } while (pdVar11 != pdVar31);
  uVar26 = *(undefined4 *)((int)pdVar21 + 0x14);
  pcVar37 = *(code **)(puVar36 + 0x3042b0);
  puVar22[4] = *(undefined4 *)pdVar11;
  puVar22[5] = uVar26;
  uVar28 = puVar13[1];
  uVar27 = puVar13[2];
  uVar26 = puVar13[3];
  *puVar23 = *puVar13;
  puVar23[1] = uVar28;
  puVar23[2] = uVar27;
  puVar23[3] = uVar26;
  puVar25[5] = 0;
  puVar13[4] = iVar38 + 1;
  (*pcVar37)(pdVar7);
  (**(code **)(puVar36 + 0x3042b0))(pdVar8);
  (**(code **)(puVar36 + 0x3042b0))(pdVar6);
LAB_000a61cc:
  uVar4 = FUN_000a2d58(iVar17,iVar5,puVar13,param_4);
  uStack_1d0 = uStack_1d0 & uVar4;
  (**(code **)(puVar36 + 0x3042b0))(puVar13);
  if (uStack_1d0 == 0) goto LAB_000a5774;
  iVar32 = *(int *)(pdStack_e8 + 2);
  iVar29 = iVar32 * 0x28;
  if ((*(int *)(param_2 + 0x244) == 2) && (*(int *)(pdStack_e8 + 4) == 0)) {
    uVar4 = MASKED(iVar17,param_2,pdStack_e8,param_4);
    uVar14 = MASKED(iVar17,param_2,pdStack_e8 + iVar32 * 5 + -5,param_4);
    uStack_1d0 = uVar4 & uVar14 & 1;
    iVar29 = *(int *)(pdStack_e8 + 2) * 0x28;
  }
LAB_000a6620:
  pdStack_e8 = (double *)((int)pdStack_e8 + iVar29);
  if (*(int *)((int)pdStack_e8 + 0x14) == 0) goto code_r0x000a6634;
  goto LAB_000a4e98;
code_r0x000a6634:
  pcVar37 = *(code **)(puVar36 + 0x3042d8);
  goto LAB_000a5778;
}

